二进制、十进制等转换

3,405 阅读2分钟

我正在参加「掘金·启航计划」

1,十进制转换成二进制、八进制、十六进制

方法:使用十进制的数不断除以n(需要转换的进制类型,如二进制n=2、八进制n=8、十六进制n=16),直到商为0,然后从下往上取余数

十进制转换二进制:
18: 18/2   商为:9 余数:0
      9/2   商为:4 余数:1
      4/2   商为:2 余数:0
      2/2   商为:1 余数:0
      1/2   商为:0 余数:1
    最终结果:十进制18  转换二进制:10010
    
十进制转换八进制:  
18: 18/8   商为:2 余数:2
      2/8   商为:0 余数:2
    最终结果:十进制18  转换八进制:22
        
十进制转换十六进制:  
18: 18/16   商为:1 余数:2
      1/16   商为:0 余数:1
    最终结果:十进制18  转换十六进制:12

2,二进制、八进制、十六进制转换成十进制

方法:每一位数乘以n(二进制n=2、八进制n=8、十六进制n=16)的a次方,a的值从0开始,每次递增1,然后把所有的数相加。

二进制转换十进制
10010:   1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0  = 18

八进制转换十进制
22:   2*8^1 + 2*8^0 = 18

十六进制转换十进制
12:   1*16^1 + 2*16^0 = 18

3,二进制转成八进制

方法:二进制数每三位一组,如果不满三位,自动补0,依次转换成十进制的数,然后所有十进制的数字从左往右组合在一起。

八进制转二进制只需要反过来就行,将八进制的每一个数字转换成三位二进制数字即可。

10010 = 010 010
010 转换成十进制 2    最终结果: 22

4,二进制转成十六进制

方法:二进制数每四位一组,如果不满四位,自动补0,依次转换成十进制的数,然后所有十进制的数字从左往右组合在一起。

十六进制转二进制只需要反过来就行,将十六进制的每一个数字转换成四位二进制数字即可。

10010 = 0001 0010
0001 转换成十进制 1,0010 转换成十进制 2     最终结果: 12

*** 负数(二进制高位是1 则为负数 0是正数)的情况下 二进制转十进制 取反加一 十进制转二进制 减一取反