1.10 二进制、十进制、十六进制转换详解
在计算机网络的世界里,我们每天都在和数字打交道:IP 地址、子网掩码、MAC 地址、IPv6 地址…… 要真正理解这些概念,熟练掌握进制转换是基本功中的基本功。
本文将手把手教你如何进行二进制、十进制和十六进制之间的相互转换,重点介绍网络工程师最常用的**“凑数法”**。
1. 基础概念
- 十进制 (Decimal):我们日常使用的数字,逢 10 进 1。数字包含 0-9。
- 二进制 (Binary):计算机底层使用的语言,逢 2 进 1。数字只包含 0 和 1。
- 单位: bit (位)。1 Byte (字节) = 8 bits。
- 十六进制 (Hexadecimal):为了简化二进制的书写而存在,逢 16 进 1。数字包含 0-9,以及 A-F (代表 10-15)。
| 十进制 | 二进制 | 十六进制 |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| ... | ... | ... |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 15 | 1111 | F |
2. 二进制与十进制互转
2.1 二进制转十进制:按权求和法
每一位二进制数都有其对应的“权重”(权值)。从右往左,权重依次是 $2^0, 2^1, 2^2, 2^3...$ 即 1, 2, 4, 8...
计算公式:将每一位为 1 的位置对应的权重相加。
示例:将二进制 10101100 转换为十进制。
| 二进制位 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
|---|---|---|---|---|---|---|---|---|
| 权重 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 计算 | 128 | +0 | +32 | +0 | +8 | +4 | +0 | +0 |
结果:$128 + 32 + 8 + 4 = 172$
2.2 十进制转二进制:凑数法(网工必备)
虽然教科书上教的是“除 2 取余法”,但在计算 IP 地址时,凑数法(减法) 更加直观和快速。你需要熟记 8 位二进制对应的权值:
128, 64, 32, 16, 8, 4, 2, 1
方法:拿目标数字去“减”这些权值。
- 够减,写 1,保留余数继续往下减。
- 不够减,写 0,原数保留。
示例:将十进制 192 转换为二进制。
- 192 vs 128:192 >= 128,够减。写 1。余数 64。
- 64 vs 64:64 >= 64,够减。写 1。余数 0。
- 0 vs 32:不够减。写 0。
- ...后面全是 0。
结果:11000000
示例 2:将 168 转换为二进制。
- 168 vs 128:够减 (168-128=40)。写 1。
- 40 vs 64:不够减。写 0。
- 40 vs 32:够减 (40-32=8)。写 1。
- 8 vs 16:不够减。写 0。
- 8 vs 8:够减 (8-8=0)。写 1。
- 后面全是 0。
结果:10101000
🎯 目标数字: 168
⬇
步骤 1: 比较 128
168 >= 128 ? Yes
写 1,余 40
⬇
步骤 2: 比较 64
40 >= 64 ? No
写 0,余 40
⬇
步骤 3: 比较 32
40 >= 32 ? Yes
写 1,余 8
⬇
...继续比较 16, 8, 4, 2, 1...
3. 二进制与十六进制互转
3.1 核心思想:8421
1 位十六进制数正好对应 4 位二进制数。 因为 $2^4 = 16$。 所以,转换的核心就是把二进制数 每 4 位一组 拆开。
3.2 二进制转十六进制
步骤:
- 从右往左,每 4 位一组。不够 4 位在左边补 0。
- 将每组 4 位二进制算出对应的十进制数 (0-15)。
- 将 10-15 转换为 A-F。
示例:MAC 地址部分二进制 10101100 转十六进制。
- 拆分:
1010|1100 - 计算:
1010= 8 + 2 = 10 -> A1100= 8 + 4 = 12 -> C
- 结果:
AC
3.3 十六进制转二进制
步骤:将每一位十六进制数展开为 4 位二进制数。
示例:IPv6 地址 FE80 转二进制。
- 拆分:
F|E|8|0 - 展开:
F(15) -> 8+4+2+1 -> 1111E(14) -> 8+4+2 -> 11108(8) -> 8 -> 10000(0) -> 0000
- 结果:
1111111010000000
4. 常见数字对照表
熟记以下表格,能让你在网络配置中快人一步:
| 十进制 | 二进制 (8位) | 用途 |
|---|---|---|
| 0 | 00000000 | 全0,网络位/主机位起始 |
| 128 | 10000000 | /25 掩码 |
| 192 | 11000000 | /26 掩码,C类私网开头 |
| 224 | 11100000 | /27 掩码,组播开头 |
| 240 | 11110000 | /28 掩码 |
| 248 | 11111000 | /29 掩码 |
| 252 | 11111100 | /30 掩码 (P2P链路常用) |
| 254 | 11111110 | /31 掩码 |
| 255 | 11111111 | 全1,广播地址 |
5. 总结图示
十进制 (Decimal)
凑数法 / 求和↔
二进制 (Binary)
8421 / 4位一组↔
十六进制 (Hex)
💡 核心技巧: 记准权重
128 64 32 16 8 4 2 16. 实战:掩码计算演示
IP 地址 (Binary)
11000000.10101000.00000001.00001010
192.168.1.10
子网掩码 (Binary)
11111111.11111111.11111111.00000000
255.255.255.0
网络地址 (IP & Mask)
11000000.10101000.00000001.00000000
192.168.1.0
广播地址 (Network | ~Mask)
192.168.1.255