进制的相互转化
本文最后更新于 2024年10月22日 下午
目录(默认关闭,点击展开):
展开目录找的更快
二进制
1、二进制转八进制:
1.1、取三合一查表法:
原理:对应表
二进制: | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
八进制: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
举例:
二进制:1100011011010010.011
经过分组补零查表可得:
001 100 011 011 010 010 . 011
1 4 3 3 2 2 . 3
故得转化为八进制为:143322.3
2、二进制转十进制:
2.1、按权相加法:
原理:
举例:
二进制:1100 0110 1101 0010.011
整数部分:\(1(2^{15})+1(2^{14})+1(2^{10})+1(2^{9})+1(2^{7})+1(2^6)+1(2^4)+1(2^1)=50898\)
小数部分:\(1(2^{-2})+1(2^{-3})=0.375\)
故得转化为十进制为:50898.375
3、二进制转十六进制:
3.1、取四合一查表法:
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
举例:
二进制:1100011011010010.011
经过分组补零查表可得:
1100 0110 1101 0010. 0110
c 6 d 2 . 6
故得转化为十六进制为:c6d2.6
八进制
4、八进制转二进制:
4.1、一分为三查表法:
原理:对应表的逆运用
二进制: | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
八进制: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
举例:
八进制:143322.3
经过分组补零查表可得:
1 4 3 3 2 2 . 3
001 100 011 011 010 010 . 011
故得转化为二进制为:1100011011010010.011
5、八进制转十进制:
5.1、按权相加法:
原理:
举例:
八进制:143322.3
整数部分:\(1(8^5)+4(8^4)+3(8^3)+3(8^2)+2(8^1)+2(8^0)=50898\)
小数部分:\(3(8^{-1})=0.375\)
故得转化为十进制为:50898.375
6、八进制转十六进制:
6.1、直接法:
目前我没有找到直接转化的方法,只有间接的将八进制转为二进制(或十进制)再转化为十六进制。
6.2、间接法:
举例:
八进制:143322.3
先转化为二进制:(如4.1)
再讲二进制转化为十六进制:(如3.1)
十进制
7、十进制转二进制:
7.1、除二取余法:
全称:(整数部分除二取余,逆序排列;小数部分乘二取整,正序排列法)
原理:
举例:
十进制:38.5
整数部分:100110(步骤如下图)
小数部分:1(步骤如下图)
故得二进制数为:100110.1
7.2、对照比较法:
这种方法我姑且叫它投机取巧法:
因为它有点类似于编程语言的布尔值属性,二进制只有0和1,类似于真和假(true and false),世间万物,像这样对立的属性可太多了。并且当十进制有小数怎么比较。
通过比较下表(也就是2的n次方)
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|
举例:十进制数:100
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|
100 | 100 | 100 | 36 | 4 | 4 | 4 | 0 | 0 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
故得二进制数为:1100100
8、十进制转八进制:
8.1、除八取余法:
全称:(整数部分除八取余,逆序排列;小数部分乘八取整,正序排列法)
原理:
举例:
十进制:50898.375
整数部分:143322
小数部分:3
故得八进制数为:143322.3
9、十进制转十六进制:
9.1、除十六取余法:
全称:(整数部分除十六取余,逆序排列;小数部分乘十六取整,正序排列法)
原理:
举例:
十进制:50898.375
整数部分:\(c6d2\)
小数部分:6
故得十六进制数为:\(c6d2.6\)
十六进制
10、十六进制转二进制:
10.1、一分为四查表法:
原理:
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
举例:
十六进制:\(c6d2.6\)
经过查表可得:
c 6 d 2 . 6
1100 0110 1101 0010 . 0110
故得二进制数为:1100011011010010.011
11、十六进制转八进制:
11.1、直接法:
目前我没有找到直接转化的方法,只有间接的将十六进制转为二进制(或十进制)再转化为八进制。
11.2、间接法:
举例:
十六进制:\(c6d2.6\)
先转化为十进制:(如下面的12.1)
再将十进制转化为八进制:(如上面的8.1)
12、十六进制转十进制:
12.1、按权相加法
举例:
十六进制:\(c6d2.6\)
整数部分:\(c(16^3)+6(16^2)+d(16^1)+2(16^0)=50898\)
小数部分:\(6(16^{-1})=0.375\)
故得转化为十进制为:50898.375
总结:
进制的转化方法不唯一,我列出了一个表格,供需要时查询: