十进制转二进制,为什么要逆序取商
虽然大学里学过数字的进制转换,但实际的工作中,这方面用到的相对较少,最近看到这类笔试题,不禁心中一冷-----真忘记怎么转换了!
拿十进制转二进制来说,为什么要将除2得到的商倒过来排列呢?使劲想了想,个人得出如下结论:
凭空想像:
二进制数据的表示特性为,从右向左,每一位表示2的N次方,N是从0开始的,而这个二进制数据的真正值(以十进制表示)就是这些“次方”的和。
而一个十进制整数能够被2除的次数,正是这个N次方的N。N肯定是一个非负整数(0当然也可以)。当N取一个相对小的可能值时,那么这时的N次方
就是在二进制表示法(01序列)中相对靠右的一个位置,而N取一个相对较大的可能值时,这时就是在二进制表示法(01序列)中相对靠左的一个位置。
所以,正是因为这个道理,十进制转二进制的过程中,要将十进制整数除以2的商逆序排列。