进制转换

进制转换

| 进制 | 基数 |
|---|---| --- |
| 二进制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

❤️有则改之,无则加勉。如有错误、建议、疑问,评论或联系飞沙QQ:2602629646
❤️本文来自作者:MrFlySand,转载请注明原文链接:https://www.cnblogs.com/MrFlySand/p/13620790.html

原文地址:https://www.cnblogs.com/MrFlySand/p/13620790.html