进制的简单介绍
整数可以使用四种不同的进制表示方式:
- 二进制 (Binary):由 0 和 1 组成,满 2 进 1,以
0b
或0B
开头表示。 - 十进制 (Decimal):由 0-9 组成,满 10 进 1,是最常用的数值表示方式。
- 八进制 (Octal):由 0-7 组成,满 8 进 1,以数字
0
开头表示。 - 十六进制 (Hexadecimal):由 0-9 和 A(10)-F(15) 组成,满 16 进 1,以
0x
或0X
开头表示,字母 A-F 不区分大小写。
进制的图示
下面是一个包含十进制、二进制、八进制和十六进制的进制转换表(从 0 到 10):
十进制 (Dec) | 二进制 (Bin) | 八进制 (Oct) | 十六进制 (Hex) |
---|---|---|---|
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
进制转换示例及计算方法
进制转换示例及计算方法
1. 二进制转换成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 2 的 (位数 - 1) 次方,然后求和。
示例:将 0b1011
转换为十进制:
0b1011 = 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3
= 1 + 2 + 0 + 8 = 11
即 0b1011 = 11₁₀
。
2. 八进制转换成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 8 的 (位数 - 1) 次方,然后求和。
示例:将 0234
转换为十进制:
0234 = 4 * 8^0 + 3 * 8^1 + 2 * 8^2
= 4 + 24 + 128 = 156
即 0234 = 156₁₀
。
3. 十六进制转换成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的 (位数 - 1) 次方,然后求和。
示例:将 0x23A
转换为十进制:
0x23A = 10 * 16^0 + 3 * 16^1 + 2 * 16^2
= 10 + 48 + 512 = 570
即 0x23A = 570₁₀
。
4. 十进制转换成二进制
规则:不断将该数 除以 2,直到商为 0 为止,然后将每步得到的余数 倒序排列,即为对应的二进制数。
示例:将 34
转换为二进制:
商 | 余数 |
---|---|
34 ÷ 2 = 17 | 0 |
17 ÷ 2 = 8 | 1 |
8 ÷ 2 = 4 | 0 |
4 ÷ 2 = 2 | 0 |
2 ÷ 2 = 1 | 0 |
1 ÷ 2 = 0 | 1 |
倒序排列余数:100010
,即 34₁₀ = 0b100010
。
5. 十进制转换成八进制
规则:不断将该数 除以 8,直到商为 0 为止,然后将每步得到的余数 倒序排列,即为对应的八进制数。
示例:将 131
转换为八进制:
商 | 余数 |
---|---|
131 ÷ 8 = 16 | 3 |
16 ÷ 8 = 2 | 0 |
2 ÷ 8 = 0 | 2 |
倒序排列余数:203
,即 131₁₀ = 0203₈
。
6. 十进制转换成十六进制
规则:不断将该数 除以 16,直到商为 0 为止,然后将每步得到的余数 倒序排列,即为对应的十六进制数。
示例:将 237
转换为十六进制:
商 | 余数 |
---|---|
237 ÷ 16 = 14 | 13 (D) |
14 ÷ 16 = 0 | 14 (E) |
倒序排列余数:ED
,即 237₁₀ = 0xED₁₆
。
7. 二进制转换成八进制
规则:从低位开始,将二进制数每 3 位一组,转换成对应的八进制数。
示例:将 0b11010101
转换为八进制:
-
分组(从右往左,每 3 位一组):
11(3) 010(2) 101(5)
-
转换:
11₂ = 3₈, 010₂ = 2₈, 101₂ = 5₈
结果:0b11010101 = 0325₈
。
8. 二进制转换成十六进制
规则:从低位开始,将二进制数每 4 位一组,转换成对应的十六进制数。
示例:将 0b11010101
转换为十六进制:
-
分组(从右往左,每 4 位一组):
1101(D) 0101(5)
-
转换:
1101₂ = D₁₆, 0101₂ = 5₁₆
结果:0b11010101 = 0xD5₁₆
。
9. 八进制转换成二进制
规则:将八进制数每 1 位,转换成对应的 3 位二进制数。
示例:将 0237
转换为二进制:
2₈ = 010₂
3₈ = 011₂
7₈ = 111₂
结果:0237₈ = 0b10011111
。
10. 十六进制转换成二进制
规则:将十六进制数每 1 位,转换成对应的 4 位二进制数。
示例:将 0x23B
转换为二进制:
2₁₆ = 0010₂
3₁₆ = 0011₂
B₁₆ = 1011₂
结果:0x23B₁₆ = 0b001000111011
。