Go语言进制
一、进制介绍
对于整数,有四种表示方式:
- 二进制:0,1 满2进1
- 八进制:0~7 满8进1
- 十进制:0~9 满10进1,以数字0开头表示
- 十六进制:09及AF 满15进1,以0X或0x开头表示。此处的A~F不区分大小写
进制图示:
十进制 | 十六进制 | 八进制 | 二进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 2 | 2 | 10 |
3 | 3 | 3 | 11 |
4 | 4 | 4 | 100 |
5 | 5 | 5 | 101 |
6 | 6 | 6 | 110 |
7 | 7 | 7 | 111 |
8 | 8 | 010 | 1000 |
9 | 9 | 011 | 1001 |
10 | 0xA | 012 | 1010 |
11 | 0xB | 013 | 1011 |
12 | 0xC | 014 | 1100 |
13 | 0xD | 015 | 1101 |
14 | 0xE | 016 | 1110 |
15 | 0xF | 017 | 1111 |
16 | 0x10 | 020 | 10000 |
17 | 0x11 | 021 | 10001 |
二、进制转换
1.其他进制转十进制
二进制转十进制
规则:从低位开始(右边的),将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
例如:将二进制1011转成十进制
二进制 | 十进制 |
---|---|
1011 | 1 * 2º + 1 * 2¹ + 0 * 2² + 1 * 2³ = 11 |
八进制转十进制
规则:从低位开始(右边的),将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
例如:将八进制0123转成十进制
八进制 | 十进制 |
---|---|
0123 | 3 * 8º + 2 * 8¹ + 1 * 8² = 83 |
十六进制转十进制
规则:从低位开始(右边的),将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
例如:将十六进制0x34A转成十进制
十六进制 | 十进制 |
---|---|
0x34A | 10 * 16º + 4 * 16¹ + 3 * 16² = 842 |
2.十进制转其他进制
十进制转二进制
规则:将该数不断的除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
例如:将56转成二进制
如上图所示56转成二进制是111000
十进制转八进制
规则:将该数不断的除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
例如:将156转成八进制
如上图所示156转成八进制是0234
十进制转十六进制
规则:将该数不断的除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
例如:将356转成十六进制
如上图所示356转成十六进制是0x164
3.二进制转八进制和十六进制
二进制转八进制
规则:将二进制数每三位一组(从低位开始组合),转成对应的八进制即可。
例如:将二进制11010101转成八进制
如上图所示二进制11010101转成八进制是0325
二进制转十六进制
规则:将二进制数每四位一组(从低位开始组合),转成对应的十六进制即可。
例如:将二进制11010101转成十六进制
如上图所示二进制11010101转成十六进制是0xD5
4、八进制、十六进制转二进制
八进制转二进制
规则:将八进制的每一位,转成对应的三位的二进制数即可
例如:将八进制0237转成二进制
如上图所示将八进制0237转成二进制是10011111
十六进制转二进制
规则:将十六进制的每一位,转成对应的四位的二进制数即可
例如:将十六进制0x237转成二进制
如上图所示将十六进制0x237转成二进制是1000110111