怎么才能快速将二进制与10进制互转?
方法如下:
首先需要一张表:
n(2^n) | 128(2^7) | 64(2^6) | 32(2^5) | 16(2^4) | 8(2^3) | 4(2^2) | 2(2^1) | 1(2^0) |
一、十进制转二进制
比如十进制数21,要转换成2进制的话,就依次从找比21小的2的次方数相加,直到等于21:
比21小的是16,那就16+8;结果大于21,那就16+4,等于20,小于21,然后继续找,16+4+2>21;然后重新找:16+4+1=21,
然后就需要用到上面的表,把等式右边的数在表中填1,其他填0即可:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
即21的的二进制数为:0001 0101。
再来个例子,比如十进制数88,比88小的2的倍数是64,那就从64开始,64+32>88,所以32不行;继续下一个:64+16<88,所以继续往下;64+16+8=88,然后填入下表:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
即88的二进制数为:0101 1000。
二、二进制转十进制
还是需要用到上表。
比如要转换二进制数:0010 1101,
那么只需要从右到左把上面的二进制数,也从右到左填入到表中:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
然后把位是1的2的次方相加即可。
即:0010 1101=32+8+4+1=45。
再比如二进制数:0111 0011,
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
所以0111 0011=64+32+16+2+1=115。
怎么样,简单吧,是不是口算都可以了!