第一课:进制转换
先搞清楚什么是"进制"
进制就是逢几进一。
| 进制 | 用哪些数字 | 逢几进一 | 生活例子 |
|---|---|---|---|
| 十进制 | 0~9 | 逢10进1 | 日常计数 |
| 二进制 | 0、1 | 逢2进1 | 计算机底层 |
| 八进制 | 0~7 | 逢8进1 | 考试常考 |
| 十六进制 | 0-9、A-F | 逢16进1 | Java 中 0x 前缀 |
其中十六进制里:A=10, B=11, C=12, D=13, E=14, F=15
考试只考两类转换
第一类:其他进制 → 十进制
方法:按权展开,逐位相乘,再求和
举个例子,把二进制 11010 转成十进制:
从右往左,每一位乘以 2 的 n 次方(n 从 0 开始)
1 1 0 1 0
×2⁴ ×2³ ×2² ×2¹ ×2⁰
= 16 + 8 + 0 + 2 + 0
= 26
所以 二进制 11010 = 十进制 26
换成十六进制也一样,比如 2AF:
2 A(10) F(15)
×16² ×16¹ ×16⁰
= 512 + 160 + 15
= 687
所以 十六进制 2AF = 十进制 687
第二类:十进制 → 其他进制
方法:除以进制基数,倒取余数
比如把十进制 156 转成二进制:
156 ÷ 2 = 78 余 0
78 ÷ 2 = 39 余 0
39 ÷ 2 = 19 余 1
19 ÷ 2 = 9 余 1
9 ÷ 2 = 4 余 1
4 ÷ 2 = 2 余 0
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
从下往上读余数:10011100
所以 十进制 156 = 二进制 10011100
快捷技巧:二进制 ↔ 十六进制
考试最常考这个,因为4 位二进制 = 1 位十六进制,可以直接对照:
二进制 1001 1100
↓ ↓
十六进制 9 C
所以 10011100 = 9C
反过来也行:十六进制 3F = 二进制 0011 1111
练习
第 1 题: 把二进制
10110转成十进制第 2 题: 把十进制
200转成二进制第 3 题: 把十六进制
1A3转成十进制