
1.2.2 不同进制数的转换
由于计算机中使用二进制,而现实生活中常用十进制,因此经常需要在不同进制间进行数据的转换。
1. 将不同进制数转换为十进制数
将任何进制的数转换为十进制数时,用每个位置上的数码乘以相应的位权,然后求和,就能得到对应的十进制数值。
【例1.2】 将二进制数(110010100111.1)2、八进制数(6247.4)8、十六进制数(CA7.8)16转换为对应的十进制数。
(110010100111.1)2=1×211+1×210+0×29+0×28+1×27+0×26+1×25+0×24+0×23+1× 22+1×21+1×20+1×2−1
=(3239.5)10
(6247.4)8=6×83+2×82+4×81+7×80+4×8−1=(3239.5)10
(CA7.8)16=12×162+10×161+7×160+8×16−1=(3239.5)10
2. 将十进制数转换为二进制、八进制、十六进制数
将十进制数的整数部分转换为R进制数,通常采用“除R取余法”,即用十进制整数除以R取余数,将商反复除以R,直至商为0。
得到的第一个余数为最低位,最后一个余数为最高位,将所得余数从高位到低位依次排列,就是对应的R进制数。
例如,把十进制数转换为二进制数采用“除2取余法”,把十进制数转换为八进制或十六进制数采用“除8取余法”或“除16取余法”。
【例1.3】 将十进制数(167)10转换为对应的二进制、八进制、十六进制数。

3. 二进制、八进制、十六进制数的相互转换
二进制、八进制、十六进制数之间的转换可以借助十进制数完成,也可以通过简单的方法直接转换。
如表1-1所示,每3位二进制数对应1位八进制数,每4位二进制数对应1位十六进制数。因此,将二进制数转换为八进制数的方法是:从小数点开始向两边,每3位二进制数转换成1位八进制数,数的开始和结尾部分不足3位的均补0。将二进制数转换为十六进制数,则将每4位二进制数转换成1位十六进制数,其余同上。
【例1.4】 将二进制数(10100111.1011)2转换成八进制、十六进制数。
(10100111.1011)2=(010 100 111.101 100)2=(247.54)8
=(10100111.1011)2=(A7.B)16
相应地,若想把八进制、十六进制数转换为二进制数,只需要把数值的每1位转换为对应的3位、4位二进制数即可。形成的二进制数,可省略开头和结尾处的0。
【例1.5】 将(367.45)8、(E7B2.C8)16转换为二进制数。
