8421转换法可以轻松实现各进制之间的转换
1.十进制转二进制
例1:十进制10转换成二进制
首先按照8421来分解:
10=8+2
用8421转换法,对应数字下面写1,没有的写0,得到:
8 | 4 | 2 | 1 |
---|---|---|---|
1 | 0 | 1 | 0 |
也就是说十进制的10转换成二进制等于1010,
此时或许有人会问,如果这个数大于15(8+4+2+1)咋办?
很简单, 如果大于15,就在前面添加个16;
如果再大于31,就再在前面加个32
例2:十进制21转换成二进制
首先按照8421来分解:
21=16+4+1
用8421转换法,对应数字下面写1,没有的写0,得到:
16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
1 | 0 | 1 | 0 | 1 |
例3:十进制35转换成二进制
首先按照8421来分解:
35=32+2+1
用8421转换法,对应数字下面写1,没有的写0,得到:
32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 0 | 0 | 0 | 1 | 1 |
2.二进制转十进制
例1:二进制1011转换成十进制
8 | 4 | 2 | 1 |
---|---|---|---|
1 | 0 | 1 | 1 |
8+2+1=11(D)
二进制1011就是十进制的11
(其实是上面方法的逆过程!)
3.十进制转十六进制
例1:十进制52转换成十六进制
首先按照8421来分解:
52=32+16+4
用8421转换法,对应数字下面写1,没有的写0,得到:
32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 1 | 0 | 1 | 0 | 0 |
从右到左4位4位地进行分割,位数不足的在左边添0
得到0011 0100
8 | 4 | 2 | 1 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|
0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
(1+2)*10+4*1=34(H)
52(D) ---->34(H)
4.十进制转八进制
例1:十进制52转换成八进制(421码)
52=32+16+4
32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 1 | 0 | 1 | 0 | 0 |
从右到左3位3位的进行分割,位数不足的在左边添0
4 | 2 | 1 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 1 | 0 | 1 | 0 | 0 |
(4+2)*10+1*4=64(O)
52(D) ---->64(O)
5.十六进制转八进制
例1:十六进制2A转换成八进制
把每一位进行8421分解:
2=0010(B)
A=1010(B)
从右到左3位3位的进行分割,位数不足的在左边添0
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
(4+1)*10+2=52(O)
2A(H) ---->52(O)
6.八进制转十六进制
例1:八进制64转换成十六进制
6=110(B)
4=100(B)
从右到左4位4位的进行分割,位数不足的在左边添0
8 | 4 | 2 | 1 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|
0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
(2+1)*10+4=34(H)
64(O) ---->34(H)