2进制如何变成10进制 它们是怎么换算的?麻烦说详细点,最好说几个例子

如题所述

先说1个2进制数,2进制中0代表十进制中的0,而1则代表十进制中的1,到了进位后的2进制,就*2的N次方,这要看二进制中有多少位,比如一个十进制数为1101,最右边就不用管它了,它就是1,第二位中,就是1*2的1次方=1*2=2,第三位中,就是0*2的2次方,就是1*4=4,第四位中,就是1*2的3次方=1*8=8,那么8+4+0+1=13,这就转为十进制了,自己做个对照表,可能会更方便,这次咱们从左往右来算(当然实际用的时候还是由右往左来的),1 2 4 8 16 32 64 128 256 512 1024 ......你发现了没有,后面一位是前面一位的2倍,这几个数,分别代表了十进制中不同的位数,那么如果一个十进制为1111111,那么就是128+64+32+16+8+4+2+1=255
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-16
从二进制的最低位开始依次乘以2的次方累计求和,
例如:二进制数1011101装换为10进制:从最低位开始,1*2^0+0*2^1+1*2^2+1*2^3+1*2^4+0*2^5+1*2^6=93(10)
//------------------c语言实现二进制转10进制
#include<stdio.h>
#include<string.h>
int BintoTen(char *str)
{//二进制转10进制
int i,j,k=1,sum=0;
j=strlen(str)-1;
for(i=j;i>=0;i--)
{
if('1'==str[i])//为1的处理,为零的部分不处理
sum+=1<<(k-1);//左移一位相当于乘以2,左移k-1位相当于乘以2的k-1次方
k++;
}
return sum;
}
int main()
{
char str[80];
int Ten;
scanf("%s",str);
Ten=BintoTen(str);
printf("%d",Ten);
return 0;
}本回答被网友采纳
第2个回答  2012-07-16
2进制每四位转化成十进制的一位,且四位中,1在右数第几位就加2的几减一次方。如:01101001则前四位2的平方加2即6,后四位2的三次方加2的零次方即9 则为69
第3个回答  2012-07-16
2进制的四位转化成十进制的一位,从左开始。
相似回答