C语言,利用函数实现将二进制数转化为十进制数并实现相加。

 我来答
sa...1@33sn.cc
2017-05-19
知道答主
回答量:66
采纳率:0%
帮助的人:17.1万
展开全部

1、2进制10进制的转换方法:
二进制数1101转十进制:
1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13
附加一个八进制转十进制的例子吧:
507(八进制转10进制):
5×8的2次幂+0×8的1次幂+7×8的0次幂=
5×64+0×8+7×1=327(10进制)

2、例程:

#include "stdio.h"
double BtoD(char B[])
{
    double d=0;//转为十进制数的中间结果变量
    int i=0;    //当前求到了二进制数的位置
    while(B[i++]!='\0')//当没有到二进制数结束时,一直循环
    {
        d=d*2+B[i-1]-'0'; //求出每个二进制位的位权(从高位到低位,所以每求一位,先前的都应变为原来的2倍),累加到中间结果
    }
    return d;//返回最终结果
}
int main()
{
    char b1[20],b2[20];//定义两个二进制数字符串
    scanf("%s %s",b1,b2);//输入两个字符串
    printf("%.0lf",BtoD(b1)+BtoD(b2));//输出两个二进制数转为十进制数后的和
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式