将十进制转化为二进制

不知道大家有没有感觉到,“将十进制转化为二进制”比“将二进制转化为十进制”要难。

说难啊其实也不难,就是反复地用2除十进制数,每次除完都要把余数记下来(要么是0要么是1),然后再用2除商……

这样反复除下去,直到原来的数被除到等于0。最后,我们可以得到一个余数的序列,我们把这个序列倒过来就是我们要的二进制数了。

举个例子吧,要求把1867转换成二进制数,步骤如下:

十进制转二进制

我们得到一个余数的序列,反向读取,得到11101001011

我们不妨来验算一下,把位上为1的2的对应次幂加起来,可以算出十进制数:1024+512+256+64+8+2+1=1867。

在这个过程中,每一次除都会产生最右边的位。

我们来思考一个问题,其实将一个很大的秒数转换成日、时、分、秒的过程也是类似的。

第一步,除以60得到分钟(余数是秒),结果除以60得到小时(余数是分钟),结果再除以24得到天数(余数是小时)。这个例子跟上面讲的十进制转二进制例子的区别就在于:时间转换使用了不止一个基数,先后用到了60和24。

以后再遇到进制转换的问题,就应该知道怎么处理了吧。