进制转换基础

  基本知识

  十进制

  基数为10,逢10进1。在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。

  二进制

  基数为2,逢2进1。在二进制中,使用0和1两种符号。

  八进制

  基数为8,逢8进1。八进制使用8种不同的符号,它们与二进制的转换关系为:

  0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111

  十六进制

  基数为16,逢16进1。十六进制使用16种不同的符号,它们与二进制的转换关系为:

  0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:0111 8:1000 9:1001 A:1010 B:1011 C:1100 D:1101 E:1110 F:1111

  制转换为十进制

  二进制化为十进制

  例:将二进制数101.01转换成十进制数

  (101.01)2 = 1×22 + 0×21 + 1×20 + 0×2-1 + 1×2-2 = (5.25)10

  八进制化为十进制

  例:将八进制数12.6转换成十进制数

  (12.6)8 = 1×81 + 2×80 + 6×8-1 = (10.75)10

  十六进制化为十进制

  例:将十六进制数2AB.6转换成十进制数:

  (2AB.6)16 = 2×162 + 10×161 + 11×160 + 6×16-1 = (683.375)10

  转换为二进制

  八进制化为二进制

  规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。

  例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

  十六进制化为二进制

  规则:每1位十六进制数改写成等值的4位二进制数,次序不变。

  例: (3A8C.D6)16 = (0011 1010 1000 1100.1101 0110)2 = (11101010001100.1101011)2

  十进制整数化为二进制整数

  规则:除二取余,直到商为零为止,倒排。

  例:将十进制数86转化为二进制

  2 | 86…… 0

  2 | 43…… 1

  2 | 21…… 1

  2 | 10…… 0

  2 | 5 …… 1

  2 | 2 …… 0

  2 | 1 …… 1

  结果:(86)10 = (1010110)2

  十进制小数化为二进制小数

  规则:乘二取整,直到小数部分为零或给定的精度为止,顺排。

  例:将十进制数0.875转化为二进制数

  0.875

  × 2

  1.75

  × 2

  1.5

  ×2

  1.0

  结果:(0.875)10 = (0.111)2

  转换为八进制

  二进制化为八进制

  整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。

  小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

  例:(11001111.01111)2 = (11 001 111.011 110)2 = (317.36)8

  十六进制化为八进制

  先用1化4方法,将十六进制化为二进制;再用3并1方法,将二进制化为8制。

  例: (1CA)16 = (000111001010)2 = (712)8

  说明:小数点前的高位零和小数点后的低位零可以去除。

  十进制化八进制

  方法1:采用除8取余法。

  例:将十进制数115转化为八进制数

  8| 115…… 3

  8| 14 …… 6

  8| 1 …… 1

  结果:(115)10 = (163)8

  方法2:先采用十进制化二进制的方法,再将二进制数化为八进制数

  例:(115)10 = (1110011)2 = (163)8

  转换为十六进制

  二进制化为十六进制

  整数部份从最低有效位开始,以4位为一组,最高有效位不足4位时以0补齐,每一组均可转换成一个十六进制的值,转换完毕就是十六进制的整数。

  小数部份从最高有效位开始,以4位为一组,最低有效位不足4位时以0补齐,每一组均可转换成一个十六进制的值,转换完毕就是十六进制的小数。

  例:(11001111.01111)2 = (1100 1111 .0111 1000)2 = (CF.78)16

  八进制化为十六进制

  先将八进制化为二进制,再将二进制化为十六进制。

  例:(712)8 = (111001010)2 = (1CA)16

  十进制化为十六进制

  方法1:采用除16取余法。

  例:将十进制数115转化为八进制数

  16| 115…… 3

  16| 7 …… 7

  结果:(115)10 = (73)16

  方法2:先将十进制化为二进制,再将二进制化为十六进制。

  例:(115)10 = (1110011)2 = (73)16