【Java 基础(人话版)】进制转换
进制的简单介绍
整数可以使用四种不同的进制表示方式:
- 二进制 (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。
