进制转换

##二进制和十进制之间转换

###十进制转二进制

十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,以此步骤向下运算,直到商为0。从下向上排列余数即为二进制。

权:每一位数字为一个权

十进制 150 转二进制为 10010110

1
2
3
4
5
6
7
8
9
被除数 除数 商  余数
150 / 2 = 75 0
75 / 2 = 37 1
37 / 2 = 18 1
18 / 2 = 9 0
9 / 2 = 4 1
4 / 2 = 2 0
2 / 2 = 1 0
1 / 2 = 0 1

###二进制转十进制

把二进制数按权展开,权的每位数值和2的权值下标的指数次幂相乘,并把所有的权计算的值相加得到十进制

二进制 10010110 转换十进制为 150

1
2
   1        0            0        1          0         1         1         0
1*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0

##二进制和八进制之间的转换

###二进制转八进制

二进制每3位为一个权组,权组内的数值加权相加得到八进制对应位。权分组时按照从右向左进行分组,不足三位左侧补0

1
2
3
4
5
二进制数              10                010               110
分组 (010) (010) (110
按权展开求和 0*2^2+1*2^1+0*2^0 0*2^2+1*2^1+0*2^0 1*2^2+1*2^1+0*2^0
2 2 6
八进制 226

###八进制转二进制

八进制将每一个值除2得到一个二进制权组,每个权组为3位,不足3位的在左侧补0

1
2
3
4
5
6
八进制             2                   2                   6
2 / 2 = 1 ~ 0 2 / 2 = 1 ~ 0 6 / 2 = 3 ~ 0
计算权组 1 / 2 = 0 ~ 1 1 / 2 = 0 ~ 1 3 / 2 = 1 ~ 1
1 / 2 = 0 ~ 1
补足权组 010 010 110
二进制 10 010 110

##二进制和十六进制之间的转换

###二进制转十六进制

与二进制转八进制类似,八进制为3位一个权组,十六进制为4位一个权组

十进制与十六进制的对应关系

十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F

1
2
3
4
5
二进制            1                         0010                    1100
分组 0001 0010 1100
加权计算 0*2^3+0*2^2+0*2^1+1*2^0 0*2^3+0*2^2+1*2^1+0*2^0 1*2^3+1*2^2+0*2^1+0*2^0
求和 1 2 12 = C
十六进制 12C

###十六进制转二进制

将十六进制的每个值除2取余,倒序组合所有余数,不足4位的左侧补0

1
2
3
4
5
6
7
十六进制            1                2                C
1 / 2 = 0 ~ 1 2 / 2 = 1 ~ 0 12 / 2 = 6 ~ 0
计算权值 1 / 2 = 0 ~ 1 6 / 2 = 3 ~ 0
3 / 2 = 1 ~ 1
1 / 2 = 0 ~ 1
补位 0001 0010 1100
二进制 1 0010 1100

##十进制和八进制之间的转换

###十进制转八进制

十进制除8倒序取余即为八进制

1
2
3
4
5
6
十进制            150 

计算权值 150 / 8 = 18 ~ 6
18 / 8 = 2 ~ 2
2 / 8 = 0 ~ 2
八进制 226

###八进制转十进制

按权展开,加权相加即为十进制

1
2
3
八进制         226
计算权值 2*8^2+2*8^1+6*8^0
十进制 150

##十进制和十六进制之间转换

十进制和十六进制之间的转换类似于十进制转八进制,唯一改变的就是除数,八进制除数为8,十六进制除数则为16。