不知道大家有没有感觉到,“将十进制转化为二进制”比“将二进制转化为十进制”要难。
说难啊其实也不难,就是反复地用2除十进制数,每次除完都要把余数记下来(要么是0要么是1),然后再用2除商……
这样反复除下去,直到原来的数被除到等于0。最后,我们可以得到一个余数的序列,我们把这个序列倒过来就是我们要的二进制数了。
举个例子吧,要求把1867转换成二进制数,步骤如下:
我们得到一个余数的序列,反向读取,得到11101001011
我们不妨来验算一下,把位上为1的2的对应次幂加起来,可以算出十进制数:1024+512+256+64+8+2+1=1867。
在这个过程中,每一次除都会产生最右边的位。
我们来思考一个问题,其实将一个很大的秒数转换成日、时、分、秒的过程也是类似的。
第一步,除以60得到分钟(余数是秒),结果除以60得到小时(余数是分钟),结果再除以24得到天数(余数是小时)。这个例子跟上面讲的十进制转二进制例子的区别就在于:时间转换使用了不止一个基数,先后用到了60和24。
以后再遇到进制转换的问题,就应该知道怎么处理了吧。