You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

4位二进制半字节转十六进制Python程序报错求助(初学者)

解决4位二进制半字节转十六进制字符串的问题

先给你修复好的完整代码,完全保留简单的结构:

def nib(binary_str):
    # 将4位二进制字符串转十进制,再转成大写十六进制字符
    decimal_val = int(binary_str, 2)
    return format(decimal_val, 'X')

if __name__ == "__main__":
    # 读取输入并按空格分割成单个半字节
    input_list = input().split()
    # 逐个转换并拼接成完整十六进制字符串
    hex_output = ''.join(nib(nibble) for nibble in input_list)
    # 输出最终结果
    print(hex_output)

常见问题排查(你可能踩的坑)

  • nib函数返回格式错误:如果之前用hex()函数,会返回带0x前缀的字符串(比如0x5),直接用会导致结果多冗余前缀;用format(decimal_val, 'X')能直接返回单个大写十六进制字符,完美匹配需求。
  • 未拼接转换结果:如果循环里单独print每个转换后的字符,会输出成多行或分散字符,必须用join把所有结果串成一个完整字符串再输出。
  • 输入处理不当:如果没对输入执行split(),会把整个输入当成一个长字符串,无法正确识别单个半字节,split()会自动按空格分割成独立的半字节列表。

测试验证

输入:0101 1101
输出:5D

输入:0000 1001 0001 1111 1100
输出:091FC

内容的提问来源于stack exchange,提问作者kora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:35:44