二进制转十进制的题:(11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0=(30)10请问“16+8+4+2+0”是怎么得来的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/09 19:35:26
二进制转十进制的题:(11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0=(30)10请问“16+8+4+2+0”是怎么得来的?
xTkO`+K"m)ĿfY ۢA,F2Tp5}[?vzӾ,Y!y9o:KrWAOe@5]7ooE6 pUc'Xx^;gg\7C+}zr' q^G -gR*6Ps_nʗ}t .*B eҨY@l~+ |\KDHV1RGn7dU}9`(8g9xYA=#1> t2X+TQm΢i+3ѓhxhd<5ޜf OF{#dR 3jߠ^(|VhX Z1F~IgjR@BbG9@:]95Hnf6 h8{7Z֓}K[XZ e 3KryLAELQBzl^KT'kJ2ݑ%kxNJ } /ĉ/K>zڂ|z?$ nV/'؅׆Ϝ~t&^-GX|N'O4OQq HK)~ߕ| Uv`unaJGU*wUrV%5Bar<X0 i|az4º#(ABrf:,Aj+OL݅p4Ղ*?aaˇ Ds?| ʈ4o QM_g,7Z

二进制转十进制的题:(11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0=(30)10请问“16+8+4+2+0”是怎么得来的?
二进制转十进制的题:(11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0=(30)10
请问“16+8+4+2+0”是怎么得来的?

二进制转十进制的题:(11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0=(30)10请问“16+8+4+2+0”是怎么得来的?
11110
假设是字符类型char,占据内存的一个字节Byte,即8位Bit
00011110
分别为0~255或者-128~127
我们按照0~255吧,则有:
128+64+32+16+8+4+2+1=255
将你疑惑的二进制补充完整:
00011110
0(128) 0(64) 0(32) 1(16) 1(8) 1(4) 1(2) 0(1)
所以有1的对应十进制数字相加,则:16+8+4+2=30
仔细看它们,得到规律如下:1等于2的0次方
1=2^0
2=2^1
4=2^2
8=2^3
16=2^4
32=2^5
64=2^6
128=2^7
. . .
所以嘛,你在自己好好思考一下,祝您好运,
#include
int main(){
int num=0;
int bit_num=sizeof(num)*8;
char bin[bit_num];
//unsigned char fn=0;//i2b.c:15: 警告:由于数据类型范围限制,比较结果永远为真
short fn=0;
printf("十进制:");
scanf("%d",&num);
printf("二进制:");
for (fn=1;fn>=1;
}
for (fn=bit_num-1;fn>=0;fn--){
printf("%d",bin[fn]);
if (!(fn%4)){
printf(" ");
}
}
printf("\n");
return 0;
}