十进制与二进制快速互转换计算心得

前一篇我们介绍了模2运算的加减乘除运算 ,虽然,我们了解了模二运算的基本法则,但是,如果每次都要计算,那就未免觉得太繁琐,所以,这里我总结了一套自己的运算心得供大家学习。接下来,我们就要讲解一下如何基础算法中快速实现进制的转换。

举个栗子:

我们求以前求一个10进制的数转换成2进制的过程大致如此,用这个十进制数“除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。如下图所示:
在这里插入图片描述
你会发现,这种方法会有明显的缺陷,那就是如果这个10进制的数非常大,那么这样一直“除二取余”可能非常的浪费时间,甚至是浪费纸张。那莫有没有更好的方法实现了,答案肯定是有的,下面就介绍一下我的快速计算使用心得。

快速计算心得

首先我们需要背诵2的2到10的幂次方,这个我相信对大家都不难,它们分别是1、 2、4、8、16、32、64、128、 256、 512 、1024。而这些数对应的二进制分别1、10、 100 、1000 、10000 、100000、 1000000 、10000000、 100000000 、1000000000.

  1. 10进制转2进制
    接下来,就是开始心算的时候,比如:
 9=8+1                     那么对应的二进制就是:1001
 13=8+4+1                  那么对应的二进制就是:1101
 17=16+1                   那么对应的二进制就是:10001
 34=32+2                   那么对应的二进制就是:100010
 245=128+64+32+16+4+1      那么对应的二进制就是:11110101

每次从高位依次往下写,比如34 从32 往下写 依次是 16 、8 、4 、2 、1 在该位数上分解的数有该数就写1,没有就写0。

  1. 2进制转10进制
    同理,也是从高位开始计算,先数二进制数比如:
101010   共有6个数,那么就从2的(6-1)次方开始计算  分别是32,8,2   结果就是:32+8+2=42
100010   共有6个数,那么就从2的(6-1)次方开始计算  分别是32,2     结果就是:32+2=34
.........

好了,这个方法是不是很简单,如果觉得对你有帮助,不妨给一个小红星吧!
如果,你还是不了解,建议先看一下我的上一篇博客:模2运算的加减乘除运算

猜你喜欢

转载自blog.csdn.net/ljx1400052550/article/details/105930889