七、进位计数制的相互转换

R(二、八、十六)进制转换成十进制:
实际上将一个R进制数转换成十进制数,就是求其真值,还记得上一章中提到的基数权重展开式,展开后得到的值就是对应的十进制数。例如:

同样的:



十进制数转换成R进制数:(分为整数部分和小数部分)
---整数部分


---小数部分

注:十进制转换成二进制的小数部分有可能会有(一直存在)小数的情况,这时只能牺牲一定的精度。

二进制转换八进制或十六进制:
-->二进制与八进制和十六进制有简单的对应的关系。转换起来就很便捷。

可以看到:二进制三位的最大数111对应着八进制数元中的最大数值7,所以任意一个三位的二进制数都可以用八进制的一个数元来表示,超过3位八进制的数元就表示不了了。那么如果二进制数转换成八进制数,只需要以小数点为界,每三位转换成一个八进制的数元即可:


同样刚刚好,二进制四位的最大数1111对应着十六进制数元中F的最大数值15,所以任意一个四位的二进制数都可以用十六进制的一个数元来表示,超过4位十六进制的数元就表示不了了。那么如果二进制数转换成十六进制数,只需要以小数点为界,每四位转换成一个十六进制的数元即可:


至于八进制、十六进制转换成二进制,即上述的逆向计算,每个八进制的数元转换成对应的三位二进制数,每个十六进制的数元转换成对应的四位二进制数即可。
