本篇文章以 Java 代码做示范。
進制介紹
对于整数,有四种表示方式:
- 二进制:0,1,满 2 进 1。以 0b 或 0B 开头
- 十进制:0-9,满 10 进 1
- 八进制:0-7,满 8 进 1。以数字 0 开头
- 十六进制:0-9及A(10)-F(15) 满 16 进 1。以 0x 或 0X 开头表示。此处的 A-F不区分大小写。
int n1 = 0b1010; // 二进制
int n2 = 1010; // 十进制
int n3 = 01010; // 八进制
int n4 = 0x10101; // 十六进制
System.out.println(n1+" "+n2+" "+n3+" "+n4); // 10 1010 520 65793
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
17 | 10001 | 21 | 11 |
二进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 2 的(位数 -1)次方,然后求和。
例子:请将 0b1011
转成十进制的数。
0b1011
= 1 * 2(1-1) + 1 * 2(2-1) + 0 * 2(3-1) + 1 * 2(4-1) = 1 * 1 + 1 * 2 + 0 + 1 * 8 = 11
你可以打开windows自带小算盘,切换成程序设计人员模式,然后选择二进制输出 1011 左侧可以直接看到其他进制的转换结果。
八进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 8 的(位数 -1)次方,然后求和。
例子:请将 0234
转成十进制的数。
0234
= 4 * 80 + 3 * 81 + 2 * 82 = 4 + 24 + 128 = 156
十六进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的(位数 -1)次方,然后求和。
例子:请将 0x23A
转成十进制的数。
0x23A
= 10 * 160