无计组专项・汉字编码 Easy
题目已知汉字信十进制区位码 48 37,按照 GB2312 规则计算机内码,十六进制拼接后组成 flag。
转换公式:
- 区、位分别转 16 进制,各 + 20H = 国标码
- 国标码 + 8080H = 机内码
解题步骤:
已知条件
汉字「信」十进制区位码:区码 = 48,位码 = 37转换规则拆分:
- 十进制区、位分别转为十六进制
- 区十六进制 + 20H,位十六进制 + 20H → 国标码(两个字节拼接)
- 国标码整体加 8080H → 汉字机内码
- 最终十六进制大写拼接得到 flag
步骤 1:十进制区码 48 转十六进制
计算:48 ÷ 16 = 3 余 0 高位 3,低位 0 → 区码十六进制:30H
步骤 2:十进制位码 37 转十六进制
计算:37 ÷ 16 = 2 余 5 高位 2,低位 5 → 位码十六进制:25H
步骤 3:计算国标码(区位十六进制分别 + 20H)
国标码分为高字节(区国标)、低字节(位国标)
- 区国标字节:30H + 20H =
50H - 位国标字节:25H + 20H =
45H拼接两个字节,完整国标码:5045H
步骤 4:计算机内码(国标码 + 8080H)
GB2312 机内码生成原理:国标码两字节各加 80H,等价整体加 8080H
5045H + 8080H -------- D0C5H
分步验证单字节: 高字节:50H + 80H = D0H 低字节:45H + 80H = C5H 拼接机内码:D0C5H
步骤 5:拼接 flag
flag 格式:flag {十六进制机内码} 最终结果:flag{D0C5}
核心公式总结
- 区 (10) → 区 (16),位 (10) → 位 (16)
- 国标码 = (区 16+20H) << 8 | (位 16+20H)
- 机内码 = 国标码 + 8080H
