Go语言进制转换


进制介绍

1.对于整数

  1. 二进制:0和1,满2进1
  2. 十进制:0-9,满10进1
  3. 八进制:0-7,满8进1,以数字0头
  4. 十六进制:0-9,A-F,满16进1,以0x或0X开头,A-F不区分大小写
    • 0x21AF + 1 = 0x21B0

2.二进制转十进制

  • 从最低位开始,将每个位上的数提取出来,乘以2位数-1,然后求和。

    将1011转成10进制

    1 x 21-1 + 1 x 22-1 + 0 x 23-1 + 1 x 24-1 = 11

    十进制134转十进制

    4 x 101-1 + 3 x 102-1 + 1 x 103-1 = 134

3.八进制转十进制

  • 从最低为开始,将每个位上的数提取出来,乘以8位数-1,然后求和。

    0123转换成十进制

    3 x 81-1 + 2 x 82-1 + 1 x 83-1 = 83

4.十六进制转十进制

  • 从最低为开始,将每个位上的数提取出来,乘以16位数-1,然后求和。

    0x34A转换成十进制

    10 x 161-1 + 4 x 162-1 + 3 x 163-1 = 842

5.十进制转二进制

  • 将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制

    将56转换为二进制:00111000(不够8位高位补0)

    2|56 ---> 0
    2|28 ---> 0
    2|14 --> 0
      2|7 -- > 1
      2|3 -- > 1
         1 -- > 1

6.十进制转八进制

  • 将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制

    将156转换为八进制:0234

    8|156 ---> 4
      8|19 ---> 3
          2 --> 2

7.十进制转十六进制

  • 将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制

    将356转换为十六进制:0x164

    16|356 ---> 4
      16|22 ---> 6
            1 --> 1

8.二进制转八进制

  • 将二进制数每三位一组(从低到高),转成对应的八进制数即可

    将二进制:11010101转成进制:0325

    11(3)   010(2)   101(5)

    1 --> 001
    2 --> 010
    3 --> 011
    4 --> 100
    5 --> 101
    6 --> 110
    7 --> 111
    8 --> 1000
    9 --> 1001
    10 --> 1010
    11 --> 1011
    12 --> 1100
    13 --> 1101

9.二进制转十六进制

  • 将二进制数每四位一组(从低到高),转成对应的八进制数即可

    将二进制:11010101转成进制:0xD5

      1101(D)   0101(5)

10.八进制转二进制

  • 将八进制数每一位,转成对应的3位二进制数即可

    将八进制:0237转成二进制:10011111

    2(010)  3(011)   7(111)

11.十六进制转二进制

  • 将十六进制数每一位,转成对应的4位二进制数即可

    将八进制:0x237转成二进制:1000110111

    2(0010)  3(0011)   7(0111)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM