Skip to content

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)。
十进制二进制十六进制
000000
100011
.........
101010A
111011B
151111F

2. 二进制与十进制互转

2.1 二进制转十进制:按权求和法

每一位二进制数都有其对应的“权重”(权值)。从右往左,权重依次是 $2^0, 2^1, 2^2, 2^3...$ 即 1, 2, 4, 8...

计算公式:将每一位为 1 的位置对应的权重相加。

示例:将二进制 10101100 转换为十进制。

二进制位10101100
权重1286432168421
计算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 转换为二进制。

  1. 192 vs 128:192 >= 128,够减。写 1。余数 64。
  2. 64 vs 64:64 >= 64,够减。写 1。余数 0。
  3. 0 vs 32:不够减。写 0
  4. ...后面全是 0。

结果11000000

示例 2:将 168 转换为二进制。

  1. 168 vs 128:够减 (168-128=40)。写 1
  2. 40 vs 64:不够减。写 0
  3. 40 vs 32:够减 (40-32=8)。写 1
  4. 8 vs 16:不够减。写 0
  5. 8 vs 8:够减 (8-8=0)。写 1
  6. 后面全是 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 二进制转十六进制

步骤

  1. 从右往左,每 4 位一组。不够 4 位在左边补 0。
  2. 将每组 4 位二进制算出对应的十进制数 (0-15)。
  3. 将 10-15 转换为 A-F。

示例:MAC 地址部分二进制 10101100 转十六进制。

  1. 拆分:1010 | 1100
  2. 计算:
    • 1010 = 8 + 2 = 10 -> A
    • 1100 = 8 + 4 = 12 -> C
  3. 结果:AC

3.3 十六进制转二进制

步骤:将每一位十六进制数展开为 4 位二进制数。

示例:IPv6 地址 FE80 转二进制。

  1. 拆分:F | E | 8 | 0
  2. 展开:
    • F (15) -> 8+4+2+1 -> 1111
    • E (14) -> 8+4+2 -> 1110
    • 8 (8) -> 8 -> 1000
    • 0 (0) -> 0000
  3. 结果:1111111010000000

4. 常见数字对照表

熟记以下表格,能让你在网络配置中快人一步:

十进制二进制 (8位)用途
000000000全0,网络位/主机位起始
12810000000/25 掩码
19211000000/26 掩码,C类私网开头
22411100000/27 掩码,组播开头
24011110000/28 掩码
24811111000/29 掩码
25211111100/30 掩码 (P2P链路常用)
25411111110/31 掩码
25511111111全1,广播地址

5. 总结图示

十进制 (Decimal)
凑数法 / 求和
二进制 (Binary)
8421 / 4位一组
十六进制 (Hex)
💡 核心技巧: 记准权重 128 64 32 16 8 4 2 1

6. 实战:掩码计算演示

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