Appearance
题目
若某主机的 IP 地址是 183.80.72.48,子网掩码是 255.255.192.0,则该主机所在网络的网络地址是( )。
错因
A
把掩码当成了 /16(255.255.0.0)算——网络地址 = 183.80.0.0。错的根源:忽略了掩码 192.0 那个 192 字段,认为第三字节全是主机位。实际 192 = 11000000,第三字节高 2 位是网络位,所以掩码是 /18,不是 /16。
C
把掩码当成了 /24(255.255.255.0)算——网络地址 = 183.80.72.0。错的根源:彻底忽略了掩码长度,凭"IP 第三字节是 72,所以网络地址第三字节也是 72"的直觉走。但 /18 掩码只保留第三字节高 2 位,72 的高 2 位 = 01 → 网络第三字节 = 01000000 = 64,不是 72。
D
掩码字段 192 直接搬到网络地址第三字节——按位与运算搞错了。IP 第三字节 72 = 01001000,掩码 192 = 11000000,按位与得 01000000 = 64。选 D 的人把"掩码 192 那个值"当成了网络地址的字节,根本没做按位与。
总解析
第一步:把 IP 与掩码都写成二进制
| 字段 | 第 1 字节 | 第 2 字节 | 第 3 字节 | 第 4 字节 |
|---|---|---|---|---|
| IP(183.80.72.48) | 10110111 | 01010000 | 01001000 | 00110000 |
| 掩码(255.255.192.0) | 11111111 | 11111111 | 11000000 | 00000000 |
| 按位与 | 10110111 | 01010000 | 01000000 | 00000000 |
| 结果(十进制) | 183 | 80 | 64 | 0 |
第二步:核心计算 —— 第三字节
掩码 192 = 11000000 只保留高 2 位,IP 第三字节 72 = 01001000 的高 2 位 = 01,主机位部分清零 → 第三字节网络号 = 01000000 = 64。
第三步:组合结果
网络地址 = 183.80.64.0。
直觉理解:掩码 255.255.192.0 = /18。网络位 18 位 = 前两字节 16 位 + 第三字节高 2 位。第三字节 72 在 /18 子网划分下属于 [.64, .127] 这一段(第三字节高 2 位是 01),所以网络号第三字节 = 64。
最终答案是 B(183.80.64.0)。
编者注(生僻术语):常见掩码 ↔ 前缀 ↔ 步长对照(用于快速心算):
掩码字段 二进制 该字节用几位作为网络位 该字节子网步长 128 10000000 1 128 192 11000000 2 64 224 11100000 3 32 240 11110000 4 16 248 11111000 5 8 252 11111100 6 4 254 11111110 7 2 255 11111111 8 1 看到掩码 192 就想起"步长 64"——第三字节是 64 的整倍数边界(0, 64, 128, 192)。72 落在 [64, 127] 区间 → 网络号 = 64。