
1.3.4 不同进制数之间的转换
用计算机处理十进制数,必须先把它转换成二进制数才能被计算机所接受。同理,计算结果应将二进制数转换成人们习惯的十进制数。如果用一个字节表示一个无符号整数,其取值范围是0~255(28-1);如表示一个有符号整数,其取值范围是-128~+127(-27~+27-1)。这就产生了不同进制数之间的转换问题。
1.十进制数与二进制数之间的转换
(1)十进制整数转换成二进制整数
把一个十进制整数转换为二进制整数的方法是:把被转换的十进制整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简单地说,就是“除2取余法”。
例如,将十进制整数(215)10转换成二进制整数的方法如下:

于是,(215)10=(11010111)2。
知识点:了解了十进制整数转换成二进制整数的方法后,那么了解十进制整数转换成八进制或十六进制就很容易了。十进制整数转换成八进制整数的方法是“除8取余法”,十进制整数转换成十六进制整数的方法是“除16取余法”。
(2)十进制小数转换成二进制小数
十进制小数转换成二进制小数是将十进制小数连续乘以2,选取进位整数,直到满足精度要求为止。简称“乘2取整法”。
例如,将十进制小数(0.6875)10转换成二进制小数的方法如下:

将十进制小数0.6875连续乘以2,把每次所进位的整数,按从上往下的顺序写出。于是,(0.6875)10=(0.1011)2。
知识点:了解了十进制小数转换成二进制小数的方法后,那么了解十进制小数转换成八进制小数或十六进制小数就很容易了。十进制小数转换成八进制小数的方法是“乘8取整法”,十进制小数转换成十六进制小数的方法是“乘16取整法”。
(3)二进制数转换成十进制数
把二进制数转换为十进制数的方法是将二进制数按权展开求和即可。例如,将(10011.101)2转换成十进制数的方法如下:
(10011.101)2=1×24+0×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3=(19.625)10
知识点:非十进制数转换成十进制数的方法是,把各个非十进制数按权展开求和即可。即把二进制数(或八进制数或十六进制数)写成2(或8或16)的各次幂之和的形式,然后再计算其结果。
提示
若在一个非零无符号二进制整数的后面增加一个零,则该数是原来数的2倍,依此类推,所增长的都是2的倍数;同理,若将一个二进制数末尾去掉一个零,则该数是原来数的1/2。
2.二进制数与八进制数之间的转换
二进制数与八进制数之间的转换十分简捷方便,它们之间的对应关系是:八进制数的每一位对应二进制数的3位。
(1)二进制数转换成八进制数
由于二进制数和八进制数之间存在特殊关系,即81=23,因此转换方法比较容易,具体转换方法是将二进制数从小数点开始,整数部分从右向左3位一组,小数部分从左向右3位一组,不足3位用0补足,每组对应一位八进制数即可。
例如,将(10110101110.11011)2转换为八进制数的方法如下:

于是,(10110101110.11011)2=(2656.66)8
(2)八进制数转换成二进制数
以小数点为界,向左或向右每一位八进制数用相应的3位二进制数取代,然后将其连在一起即可。
例如,将(6237.431)8转换为二进制数的方法如下:

于是,(6237.431)8=(110010011111.100011001)2
3.二进制数与十六进制数之间的转换
(1)二进制数转换成十六进制数
二进制数的每4位,刚好对应十六进制数的一位,即161=24,其转换方法是将二进制数从小数点开始,整数部分从右向左4位一组,小数部分从左向右4位一组,不足4位用0补足,每组对应一位十六进制数即可得到十六进制数。
例如,将二进制数(101001010111.110110101)2转换为十六进制数。

于是,(101001010111.110110101)2=(A57.DA8)16
(2)十六进制数转换成二进制数
以小数点为界,向左或向右每一位十六进制数用相应的4位二进制数取代,然后将其连在一起即可。
例如,将(AB.11)16转换成二进制数。

于是,(AB.11)16=(10101011.00010001)2
所以,各进制之间可以通过以上方法直接进行转换,也可以借助二进制作为桥梁来转换。