C++ 2进制转

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:59:02
01110001 2进制转回来为什么是112 用C++转的
能把过程写写吗->不是写代码, 是写人的计算方法怎么变112的过程
是8位无符号整型<-能理解吧.
写下过程麻烦你算下对吗楼下
还有答案就是112 C++ PRIMER算的书上的, 是113我还问他干吗??

千万不要迷信所谓的答案,如果迷信答案,就不要学编程了!

****************************************************

这个二进制换成十进制是113,非112

从最低位(即最右边的一位)开始,用每一位乘以2的N次方(N为现在取的二进制位的位数减1),然后将结果加起来就是。

对于这个二进制数字来说:

1*2^0+1*2^4+1*2^5+1*2^6=113

(系数为0的项目没有写出来)

算都不用算,就知道 答案必须是 奇数,绝对不是偶数。

01110001 最右面第一位是0,答案是偶数,最右面第一位是1,答案是奇数。
2进制嘛。

0111 0001 就是16进制 0x71
printf("%d",0x71);

或 7*16 + 1 = 112+1 = 113

答案的确是113,我用自己编的程序算出来的。
二转十就是从右起
2^0 + 2^1 + 2^2 + 2^3....如果是0就不用算,跳过去,比如二进制101
就是 2^0 + 2^2
因为第二个是0,所以跳过去变成2^2,最后就得5

128 64 32 16 8 4 2 1
0 1 1 1 0 0 0 1
128*0+64*1+32*1+16*1+8*0+4*0+2*0+1*1=113

01110001转换为十进制
0*2e8+1*2e7+1*2e6+1*2e5+0+0+0+1*2