進位
各種進位表示方式
- 2進位: 滿2進位,0b或0B開頭。
- 10進位: 滿10進位。
- 8進位: 滿8進位,0開頭。
- 16進位: 滿16進位,0x或0X開頭,a或A都可以。
1
2
3
4
5
6
7
8
int n2 = 0b1010;
int n10 = 1010;
int n8 = 01010;
int n16 = 0X1010;
System.out.println(n2);
System.out.println(n10);
System.out.println(n8);
System.out.println(n16);
10
1010
520
4112
二進位,滿2進位。
1
+1
---
10
11
+ 1
---
100
8進位,滿8進位。
7
+1
---
10
17
+ 1
---
20
16進位,滿16進位。
F
+ 1
----
10
1F
+ 1
---
20
重要轉換 | 10進位 | 16進位 | 8進位 | 2進位 |
---|---|---|---|---|
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 | 10 | 1000 |
9 | 9 | 11 | 1001 | |
10 | A | 12 | 1010 | |
11 | B | 13 | 1011 | |
12 | C | 14 | 1100 | |
13 | D | 15 | 1101 | |
14 | E | 16 | 1110 | |
15 | F | 17 | 1111 | |
> | 16 | 10 | 20 | 10000 |
17 | 11 | 21 | 10001 |
轉換
重點提示!任何數的0次方都是1。
16進位轉10進位
0x23A
↑
低位
由低位往高位計算
$ 10 \times 16^{0} + 3 \times 16^{1} + 2 \times 16^{2} = 10 + 48 + 512 = 570 $
1
System.out.println(0x23A);
570
10進位轉2進位、8進位、16進位
取餘數。
2進位轉8進位16進位
2進位轉8進位
從低位開始,每3個一組。
0b 11 010 101
↓
0 3 2 5
2進位轉16進位
從低位開始,每4個一組。
0b 1101 0101
↓
0x D 5
8進位16進位轉2進位
8進位轉2進位
每一個數字,對映3個bit
0 3 2 5
↓
0b 11 010 101
16進位轉2進位
每一個數字,對映4個bit