进制转换
| 进制 | 基数 |
|---|---| --- |
| 二进制B | 2 |
| 八进制OQ | 8 |
| 十进制D | 10 |
| 十六进制H | 16 |
任何进制R转十进制
- 按位权展开求和
- 如下公式R是进制数,X各个位数
- 公式:XRn+...+XR2+XR1+XR0+(frac{x}{R}+frac{x}{R^2}+frac{x}{R^3})
二进制转十进制
- 512 256 128 64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625
101011.101 2
32+8+2+1+0.5+0.125=43.625 10
八进制转十进制 64 8 1 0.125
127.5 8=87.625 10
1×64+2×8+7×1+5×0.125=64+16+7+0.625=87.625 10
十六进制转十进制 256 16 1 0.0625
2AB.2 16=673.125 10
2×256+10×16+11×1+2×0.0625=512+160+11+0.125=673.125 10
十进制转R进制
- 整数:X/R取余,自下而上写数
- 小数:X * R取整,自上面下写数
十进制转二进制
方法一
-
整数:X/R取余,自下而上写数
(23)10转二进制,R=2。n进制,R=n
23/2=11...1
11/2=5...1
5/2=2...1
2/2=1...0
1/2=0...1
所以(21)10=(10101)2 -
小数:X * R取整,自上而下写数
-
(23.625)10转二进制
0.625 * 2=1.25---1(看当前整数位)
0.25 * 2=0.5---0(看当前整数位)
0.5 * 2=1---1(看当前整数位)
所以(23)10=(10111.101)2
方法二(凑数法)
- 首先要记住前面的数是后面数的2倍:128 64 32 16 8 4 2 1
- 23-16=7,7>=0,所以第5位是1(第5位是从右往左数)
- 7-8=-1,-1<0,所以第4位是0
- 7-4=3,3>=0,所以第3位是1
- 3-2=1,1>=0,所以第2位是1
- 1-1=0,0=0,所以第1位是1
十进制转八进制
156.015625 10 = 234.018
156÷8=19余4
19÷8=2余3
2÷8=0余2
0.015625×8=0.125
0.125×8=1
十进制转十六进制
5463.0625 10 = 1557.116
5463÷16=341余7
341÷16=21余5
21÷16=1余5
1÷16=0余1
0.0625×16=1
二进制转八进制
- (从中间向两边,三位换一位[4 2 1],小数点左边位数不够左边补0,小数点右边不够右边补0)
10101110101.10100110 2 = 2565.514 8
0×4+1×2+0×1=2
1×4+0×2+1×1=5
1×4+1×2+0×1=6
1×4+0×2+1×1=5
1×4+0×2+1×1=5
0×4+0×2+1×1=1
0×4+1×2+0×1=4
八进制转二进制
- (从中间向两边,一换三位[4 2 1])
7132.2713 8 = 111001011010.010111001011 2
7 = 1×4+1×2+1×1 =111 2
1 = 0×4+0×2+1×1 =001 2
3 = 0×4+1×2+1×1 =011 2
2 = 0×4+1×2+0×1 =010 2
2 = 0×4+1×2+0×1 =010 2
7 = 1×4+1×2+1×1 =111 2
1 = 0×4+0×2+1×1 =001 2
3 = 0×4+1×2+1×1 =011 2
二进制转十六进制
*(从中间向两边,四位换一位[8 4 2 1],小数点左边位数不够左边补0,小数点右边不够右边补0)
- 10A,11B,13D,14E,15F进1
10111100101.000111110110 2 = 5E5.206 16
0×8+1×4+0×2+1×1=5
1×8+1×4+1×2+0×1=14=E
0×8+1×4+0×2+1×1=5=5
0×8+0×4+0×2+1×1=1
1×8+1×4+0×2+1×1=15=F=10
0×8+1×4+1×2+0×1=6
十六进制转二进制
- (从中间向两边,一位换四位[8 4 2 1])
B3.E8 16=11000011.11101 2
B=1×8+1×4+0×2+0×1=12=1100 2
3=0×8+0×4+1×2+1×1=3=0011 2
E=1×8+1×4+1×2+0×1=14=1110 2
8=1×8+0×4+0×2+0×1=8=1000 2
任何进制R转十进制(扩展)
公式:sum=sum×R+x
二进制转十进制
10011 2 = 19 10
设sum为十进制数,初始值是0
x | 1 | 0 | 0 | 1 | 1 | |
---|---|---|---|---|---|---|
sum | 0 | 1 | 2 | 4 | 9 | 19 |
公式:sum=sum×2+x | ||||||
![]() |
八进制转十进制
437 8 = 287 10
x | 4 | 3 | 7 | |
---|---|---|---|---|
sum | 0 | 4 | 35 | 287 |
公式:sum=sum×8+x | ||||
![]() |
十六进制转十进制
457 16 = 10
x | 4 | 5 | 7 | |
---|---|---|---|---|
sum | 0 | 4 | 6 | |
公式:sum=sum×16+x |