进制
进制
- 定义:进制是指进位计数制度,是一种带进位的计数方法(n进制,逢n进位)。
- 常用进制:二进制、八进制、十进制、十六进制。
十进制
- 包含0~9数字。
- C语言字面值常量:与数学方式相同。
- 1234(10) = 1234(10)
| 10进制转10进制 | 第4位 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|---|
| 每个位表示的意义 | ||||
| 每个位表示的数 | 1000 | 100 | 10 | 1 |
| 每个位上的数字 | 1 |
2 |
3 |
4 |
(1000 * 1) + (100 * 2) + (10 * 3) + (1 * 4) = 1234(10)
二进制
- 包含0~1数字。
- C语言不能直接表示字面值常量。
- 1011(2) = 11(10)
| 2进制转10进制 | 第4位 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|---|
| 每个位表示的意义 | ||||
| 每个位表示的数 | 8 | 4 | 2 | 1 |
| 每个位上的数字 | 1 |
0 |
1 |
1 |
(8 * 1) + (4 * 0) + (2 * 1) + (1 * 1) = 11(10)
八进制
- 包含0~7数字。
- C语言字面值常量:在数字前加0,如:0x1234。
- 1234(8) = 668(10)
| 8进制转10进制 | 第4位 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|---|
| 每个位表示的意义 | ||||
| 每个位表示的数 | 512 | 64 | 8 | 1 |
| 每个位上的数字 | 1 |
2 |
3 |
4 |
(512 * 1) + (64 * 2) + (8 * 3) + (1 * 4) = 668(10)
十六进制
- 包含 0 ~ 9 数字和字母 A ~ F 。
- C语言字面值常量:在数字前加0x,如:0x1A3F。
- 1A3F(16) = 6719(10)
| 16进制转10进制 | 第4位 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|---|
| 每个位表示的意义 | ||||
| 每个位表示的数 | 4096 | 256 | 16 | 1 |
| 每个位上的数字 | 1 |
A(10) |
3 |
F(15) |
(4096 * 1) + (256 * 10) + (16 * 3) + (1 * 15) = 6719(10)
进制转换
n进制转十进制
- 先将每个位上的数字乘以该进制位上表示的数;
- 再将所有位求和;
上面进制转换表均为此方法。
十进制转n进制
- 先求n的余数得到当前最后一位数字 a % n;
- 再整除n,去掉最后一位数 a /= n;
- 重复上两步,直到除尽为0;
- 将得到的数字反转排列;
- 11(10) = 1011(2)
| 10进制转2进制 | 取最后一位 | 原数去掉最后一位 |
|---|---|---|
| 第1位 | 1 (11 % 2) | 5 (11 / 2) |
| 第2位 | 1 (5 % 2) | 2 (5 / 2) |
| 第3位 | 0 (2 % 2) | 1 (2 / 2) |
| 第4位 | 1 (1 % 2) | 0 (1 / 2) |
二进制与八进制互转
- 将每三个二进制位计算为一个八进制数;
- 110110111(2) = 668(8)
| 2进制转8进制 | 第9,8,7位 | 第6,5,4位 | 第3,2,1位 |
|---|---|---|---|
| 2进制 | 110 | 110 | 111 |
| 8进制 | 6 | 6 | 8 |
八进制与二进制互转
- 将每个八进制位计算为三个二进制数;
- 668(8) = 110110111(2)
| 8进制转2进制 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|
| 8进制 | 6 | 6 | 8 |
| 2进制 | 110 | 110 | 111 |
二进制与十六进制互转
- 将每四个二进制位计算为单个十六进制数;
- 110110111(2) = 1B7(16)
| 2进制转16进制 | 第9位 | 第8,7,6,5位 | 第4,3,2,1位 |
|---|---|---|---|
| 2进制 | 1 | 1011 | 0111 |
| 16进制 | 1 | B | 7 |
十六进制与二进制互转
- 将每个十六进制位计算为四个二进制数;
- 1B7(16) = 110110111(2)
| 16进制转2进制 | 第3位 | 第2位 | 第1位 |
|---|---|---|---|
| 16进制 | 1 | B | 7 |
| 2进制 | 1 | 1011 | 0111 |
练习
一、二、八、十六进制互转(8~10题)
进制转换-二、八、十六进制互转(练习1)
进制转换-二、八、十六进制互转(练习2)
进制转换-二、八、十六进制互转(练习3)
二、n进制转10进制(4~6题)
进制转换-n进制转10进制(练习1)
进制转换-n进制转10进制(练习2)
进制转换-n进制转10进制(练习3)
三、10进制转n进制(4~6题)
进制转换-10进制转n进制(练习1)
进制转换-10进制转n进制(练习2)
进制转换-10进制转n进制(练习3)
四、进制计算(3~5题)
进制转换-进制计算(练习1)
进制转换-进制计算(练习2)
进制转换-进制计算(练习3)