前言:接触计算机的同学学习基础课程时,不免会碰到十进制转二进制 / 八进制 / 十六进制这种问题。常见的方法有“除以2/8/16看余数”。本文在介绍方法的前提上,对其数学原理进行了通俗的解释。
不考虑汇编语言的特性,对于一个字节:1 0 0 1 1 0 1 0,将其转十进制即为
要注意最低位(最右边的位)代表的是2的0次方,而非1次方。总之,二进制转十进制很简单。这里为后文做铺垫。
以154为例:将154不断除以2,取余数,最后从底部取数,作为二进制的开头。
最后所得二进制值即10011010。
结果是正确的,但是这个方法的道理/数学原理是什么?
十进制数154,对应的二进制为10011010,即
,我们将这个式子进行与上述方法同样的操作。
如上表,不断除以2实际上是一种“将二进制高位降档”的过程:
【附】定义规则:对于位的二进制数
,其转换为十进制即
。
那现在读者也一定知道八进制转二进制的做法和原理了吧?我来举个例子,比如十进制数109。
即109的八进制为155。
转为十六进制例子如下。
即109的十六进制为6D。