先了解下十进制
十进制用10个可用符号来表示一个数字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
示例:看看十进制621
621 (十进制) | ||
---|---|---|
6(百位) | 2(十位) | 1(个位) |
6 X 100 | 2 X 10 | 1 X 1 |
6 X 10**2** | 2 X 10**1** | 1 X 10**0** |
600 + 20 + 1 = 621 (十进制) |
二、八、十六进制转十进制
二进制转十进制
二进制:用两个可用符号来表示一个数字: 0, 1
示例一:二进制1011转十进制
1011 (二进制) | |||
---|---|---|---|
1 X 2**3** | 0 X 2**2** | 1 X 2**1** | 1 X 2**0** |
1 X 8 | 0 X 4 | 1 X 2 | 1 X 1 |
8 + 0 + 2 + 1 = 11 (十进制) |
示例二:二进制1011.110转十进制
1011.110 (二进制) | ||||||
---|---|---|---|---|---|---|
1 X 2**3** | 0 X 2**2** | 1 X 2**1** | 1 X 2**0** | 1 X 2-1 | 1 X 2-2 | 0 X 2-3 |
1 X 8 | 0 X 4 | 1 X 2 | 1 X 1 | 1 X 0.5 | 1 X 0.25 | 0 X 0.125 |
8 + 0 + 2 + 1 + 0.5 + 0.25 + 0 = 11.75 (十进制) |
八进制转十进制
八进制用8个可用符号来表示一个数字: 0, 1, 2, 3, 4, 5, 6, 7
对应十进制: 0, 1, 2, 3, 4, 5, 6, 7(10)
示例一:八进制621转十进制
621 (八进制) | ||
---|---|---|
6 X 8**2** | 2 X 8**1** | 1 X 8**0** |
6 X 64 | 2 X 8 | 1 X 1 |
384 + 16 + 1 = 401 (十进制) |
示例二:八进制621.21转十进制
621 | ||||
---|---|---|---|---|
6 X 8**2** | 2 X 8**1** | 1 X 8**0** | 2 X 8**-1** | 1 X 8**-2** |
6 X 64 | 2 X 8 | 1 X 1 | 2 X 0.125 | 1 X 0.015625 |
384 + 16 + 1 + 0.25 + 0.015625 = 401.265625 |
十六进制转十进制
十六进制用16个可用符号来表示一个数字: 0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
对应十进制: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
示例:十六进制2AE转十进制
2AE (十六进制) | ||
---|---|---|
2 X 16**2** | 10 X 16**1** | 14 X 16**0** |
2 X 256 | 10 X 16 | 14 X 1 |
512 + 160 + 14 = 686 (十进制) |
十进制转二、八、十六
十进制转二进制
示例一:十进制621转二进制
621 / 2 = 310 余 1
310 / 2 = 155 余 0
155 / 2 = 77 余 1
77 / 2 = 38 余 1
38 / 2 = 19 余 0
19 / 2 = 9 余 1
9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1/ 2 = 0 余 1
将余数倒排后可得到对应二进制结果: 1001101101
示例二:十进制621.25转二进制
整数部分621(同示例一,除基取余)
621 / 2 = 310 余 1
310 / 2 = 155 余 0
155 / 2 = 77 余 1
77 / 2 = 38 余 1
38 / 2 = 19 余 0
19 / 2 = 9 余 1
9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1/ 2 = 0 余 1
将余数倒排后可得到对应二进制结果: 1001101101
小数部分0.25(乘基取余)
0.25 X 2 = 0.5 = 0 + 0.5
0.5 X 2 = 1 = 1
小数部分得到的结果为:01
所以621.25的二进制结果为 1001101101.01
十进制转八进制
示例一:十进制621转八进制
621 / 8 = 77 余 5
77 / 8 = 9 余 5
9 / 8 = 1 余 1
1 / 8 = 0 余 1
将余数倒排后可得到对应八进制结果:1155
示例二:十进制621.25转八进制
整数部分621(同示例一,除基取余)
621 / 8 = 77 余 5
77 / 8 = 9 余 5
9 / 8 = 1 余 1
1 / 8 = 0 余 1
将余数倒排后可得到对应八进制结果:1155
小数部分0.25(乘基取余)
0.25 X 8 = 2 = 2
小数部分得到的结果为:2
所以621.25的二进制结果为 1155.2
十进制转十六进制
回忆下十进制十六进制数码位对照表:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
示例:十进制621转十六进制
621 / 16 = 38 余 13 —-> D
38 / 16 = 2 余 6 —-> 6
2 / 16 = 0 余 2 —-> 2
余数转换为16进制数码位,再倒排后可得到对应十六进制结果:26D
二进制、八进制、十六进制相互转换
二进制转八进制
由于23=8,所以每3位二进制可以转换为1位八进制
示例:二进制1001101101转八进制
1001101101 (二进制) | |||
---|---|---|---|
1 | 001 | 101 | 101 |
1X2**0** = 1 | 0X2**2 + 0X21 + 1X20** = 0 + 0 + 1 = 1 | 1X2**2 + 0X21 + 1X20** = 4 + 0 + 1 = 5 | 1X2**2 + 0X21 + 1X20** = 4 + 0 + 1 = 5 |
1155 (八进制) |
二进制转十六进制
由于24=16,所以每4位二进制可以转换为1位十六进制
示例:二进制1001101101转十六进制
1001101101 (二进制) | ||
---|---|---|
10 | 0110 | 1101 |
1X2**1 + 0X20** = 2 + 0 = 2 | 0X2**3 + 1X22 + 1X21 + 0X20** = 0 + 4 + 2 + 0 = 14 = 6 | 1X2**3 + 1X22 + 0X21 + 1X20** = 8 + 4 + 0 + 1 = 13 = D |
26D (十六进制) |