二、数制转换
1.十进制数到二进制数的转换
(1)、整数部分 除2取余法(余数为0为止),最后将所取余数按逆序排列。
实例:将十进制数23转换为二进制数
2| 23
2| 11 余数 1
2| 5 余数 1
2| 2
余数 1
2|1 余数 0
0 余数 1
结果为 (23)10 = (10111)2
(2)、小数部分 乘2取整法(如果小数部分是5的 倍数,则以最后小数部分为0为止,否则以约定的精确度为准,最后将所取整数按顺序排列。
实例1:将十进制数0.25转换为二进制数
0.2 5
X 2
──────
0.5 0 ...取整数位0
X 2
──────
1.0 0 ...取整数位1
结果为 (0.25)10 = (0.01)2
实例2:将十进制数125.24转换为二进制数(取四位小数)
整数部分转换 小数部分转换
2| 1 2 5
0.2 4
2| 6 2
...1 X 2
2| 3 1
...0 ──────
2| 1 5
...1 0.4 8 ...0
2| 7
...1 X 2
2| 3
...1 ──────
2|1
...1 0.9 6 ...0
0
...1 X 2
──────
1.9 2 ...1
X 2
──────
1.8 4 ...1
结果为 (125.24)10 = (1111101.0011)2
2.二进制数到十进制数的转换
基本原理:将二进制数从小数点开始,往左从0开始对各位进行正序编号,往右序号则分别为-1,-2,-3,...直到最末位,然后分别将各位上的数乘以2的k次幂所得的值进行求和,其中k的值为各个位所对应的上述编号。
实例:将二进制数1101.101转换为十进制数
编号: 3 2 1 0 -1 -2 -3
1 1 0 1 . 1 0 1 = 1×23 + 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 1×2-3 = 8 + 4 + 1 + 0.5 + 0.125 = 13.625
结果为 (1 1 0 1.1 0 1)2 = (13.625)10
3.二进制数到十六进制数
基本原理:由于十六进制数基数是2的四次幂,所以一个二进制转换为十六进制,如果是整数,只要从它的低位到高位每4位组成一组,然后将每组二进制数所对应的数用十六进制表示出来。如果有小数部分,则从小数点开始,分别向左右两边按照述方法进行分组计算。
实例:将二进制数11010111100010111转换为十六进制数
二进制数 11 1010 1111 0001 0111
十六进制数 3 A F 1 7
结果为 (11010111100010111)2 = (3AF17)16
3.十六进制转换为二进制
基本原理:十六进制数转换为二进制,只要从它的低位开始将每位上的数用二进制表示出来。如果有小数部分,则从小数点开始,分别向左右两边按照述方法进行转换。
实例:将二进制数6FBE4转换为十六进制数
十六进制数
6 F B E 4
二进制数
110 1111 1011 1110 0100
结果为 (6FBE4)16 = (1101111101111100100)2
4.十进制转换为十六进制
仿照十进制转换为二进制,可采用“除16取余法,乘16取整法”。
5.十六进制转换为十进制
仿照二进制转换为十进制将其按权展开求和即可,例如:
(32CF.4B)16=3 ×163+2 ×162+12×161+15×160+4 × 16-1+11×16-2 = 12288 +512+192+15+0.25+0.04296875=(13007.29296875)10