1.4 数制间的转换
1.4.1 任意进制转换成十进制
从1.3节可以看出,将各种进制数按权展开,就完成了向十进制数的转换。
【例1.1】将二进制数(101011.011)2转换为十进制数。
解:(101011.011)2=(1×25+1×23+1×21+1×20+1×2-2+1×2-3)10=(43.375)10
【例1.2】将八进制数(1047.5)8转换为十进制数。
解:(1047.5)8=(1×83+4×81+7×80+5×8-1)10=(551.625)10
【例1.3】将十六进制数(A6.C)16转换为十进制数。
解:(A6.C)16=(10×161+6×160+12×16-1)10=(166.75)10
1.4.2 十进制转换成任意进制
转换原则如下:将十进制数的整数部分除以r取余数,直到商为0,将余数逆序排列,得到r进制数的整数部分;将十进制数的小数部分乘以r,取出乘积的整数部分,剩下的小数部分继续乘以r,直到满足精度要求为止,将乘积的整数部分顺序排列获得r进制数的小数部分。
【例1.4】将十进制数45.28转换成二进制数(取4位小数)。
解:
所以(45.28)10=(101101.0100)2。
【例1.5】将十进制数348.27转换成八进制数(取两位小数)。
解:
所以(348.27)10=(534.21)8。
【例1.6】将十进制数4021.78转换成十六进制数(取两位小数)。
解:
所以(4021.78)10=(FB5.C7)16。
1.4.3 二进制与八进制间的转换
八进制数的基数8是2的幂,即8=23,因此可用3位二进制数表示1位八进制数。将二进制数转换成八进制数时,先对二进数进行分组,以小数点为界,向左、右两侧每3位分成一组(不够3位添0),然后将每组转换为1位八进制数,按组的顺序排列得到所对应的八进制数。将八进制数转换成二进制数时,只需将每个八进制数字展开成3位二进制数字即可。
【例1.7】将二进制数(10111101.1101)2转换成八进制数。
解:(010111101.110100)2=(275.64)8
【例1.8】将八进制数(3641.256)8转换成二进制数。
解:(3641.256)8=(11110100001.01010111)2
1.4.4 二进制与十六进制间的转换
十六进制数的基数16是2的幂,即16=24,因此可用4位二进制数表示1位十六进制数。将二进制数转换成十六进制数时,以小数点为界,向左、右两侧每4位分成一组(不够4位添0),每组转换为1位十六进制数。将十六进制数转换成二进制数时,只需将每个十六进制数字展开成4位二进制数字即可。
【例1.9】将二进制数(101110110100100.1111011)2转换成十六进制数。
解:(0101110110100100.11110110)2=(5DA4.F6)16
【例1.10】将十六进制数(B2E.57)16转换成二进制数。
解:(B2E.57)16=(101100101110.01010111)2
由于八进制数和十六进制数书写比二进制数方便,而且很容易与二进制数相互转换,因此在数字电路中有时也使用八进制数或十六进制数。