二进制与十进制之间的转换

二进制转十进制:

1位二进制数:0、1
2位二进制数:00、01、10、11(即0、1、2、3)
3位二进制数:000、001、010、011、100、101、110、111(即1、2、3、4、5、6、7)

所以N位二进制数 = 2N的十进制数
二进制与十进制之间的转换_第1张图片
因为二进制数11111=100000–1,所以等于25–1,当然你不嫌麻烦也可以24 + 23 +22 + 21 +20。
二进制转十进制例子:(打不出乘号,我用文字代替)
二进制数:10011001
计算方法:1乘27+0乘26+0乘25+1乘24+1乘23+0乘22+0乘21+1乘20 = 27+24+23+20= 128+16+8+1=153

十进制转二进制:
方法一:
用2一直相除,将得出的余数倒序写就是结果了。
十进制转二进制例子:
十进制数:305
计算方法:
305/2 = 152 余1
152/2 = 76 余0
76/2 = 38 余0
38/2 = 19 余0
19/2 = 9 余1
9/2 = 4余1
4/2 = 2余0
2/2 = 1余0
1/2 = 0余1
所以倒序后结果为:100110001
可以验算一下:100110001 = 28+25+24+20 = 256+32+16+1 = 305

方法二,降二次幂及减法混合计算:
28 = 256,27 = 128,26 = 64,25 = 32,24 = 16,23 = 8,22 = 4,21 = 2,20 = 1。

1、将要计算的十进制数与上面2n结果最接近且小于它的数进行相减
比如:十进制数142转二进制,2n中最接近且小于它的数就是27 = 128,然后将他们相减142-128=14,再拿继续匹配相减,以此类推,14-8=6,6-4=2,2-2=0。

2、然后在二进制列表中将相减过的数下记为1,没有的记为0
例:
128 -> 142-128=14 --> 1
64 --> 0
32 --> 0
16 --> 0
8 -> 14-8=6 --> 1
4 -> 6-4=2 --> 1
2 -> 2-2=0 --> 1
1 --> 0
所以十进制数142转二进制结果为10001110
可以验算一下:10001110= 27+23+22+21 = 128+8+4+2 = 142

你可能感兴趣的:(二进制与十进制之间的转换)