七、進位計數(shù)制的相互轉(zhuǎn)換

R(二、八、十六)進制轉(zhuǎn)換成十進制:
????????實際上將一個R進制數(shù)轉(zhuǎn)換成十進制數(shù),就是求其真值,還記得上一章中提到的基數(shù)權(quán)重展開式,展開后得到的值就是對應(yīng)的十進制數(shù)。例如:
????

????同樣的:
????



十進制數(shù)轉(zhuǎn)換成R進制數(shù):(分為整數(shù)部分和小數(shù)部分)
????????????---整數(shù)部分
????????


????????????? ? ---小數(shù)部分
????????????????

? ? 注:十進制轉(zhuǎn)換成二進制的小數(shù)部分有可能會有(一直存在)小數(shù)的情況,這時只能犧牲一定的精度。

二進制轉(zhuǎn)換八進制或十六進制:
????????????-->二進制與八進制和十六進制有簡單的對應(yīng)的關(guān)系。轉(zhuǎn)換起來就很便捷。
????????

????????????可以看到:二進制三位的最大數(shù)111對應(yīng)著八進制數(shù)元中的最大數(shù)值7,所以任意一個三位的二進制數(shù)都可以用八進制的一個數(shù)元來表示,超過3位八進制的數(shù)元就表示不了了。那么如果二進制數(shù)轉(zhuǎn)換成八進制數(shù),只需要以小數(shù)點為界,每三位轉(zhuǎn)換成一個八進制的數(shù)元即可:
????


????????????同樣剛剛好,二進制四位的最大數(shù)1111對應(yīng)著十六進制數(shù)元中F的最大數(shù)值15,所以任意一個四位的二進制數(shù)都可以用十六進制的一個數(shù)元來表示,超過4位十六進制的數(shù)元就表示不了了。那么如果二進制數(shù)轉(zhuǎn)換成十六進制數(shù),只需要以小數(shù)點為界,每四位轉(zhuǎn)換成一個十六進制的數(shù)元即可:
????


至于八進制、十六進制轉(zhuǎn)換成二進制,即上述的逆向計算,每個八進制的數(shù)元轉(zhuǎn)換成對應(yīng)的三位二進制數(shù),每個十六進制的數(shù)元轉(zhuǎn)換成對應(yīng)的四位二進制數(shù)即可。
