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

如何在Python中将24位二进制数拆分为3段并分别处理?

处理24位二进制输入的拆分与转换方案

完整代码

binary_num = input().strip()
# 验证输入是否为24位二进制字符串
if len(binary_num) != 24 or not all(c in ('0', '1') for c in binary_num):
    print("error")
else:
    # 直接通过字符串切片拆分三个8位部分
    part1 = binary_num[:8]
    part2 = binary_num[8:16]
    part3 = binary_num[16:]
    
    # 第一部分:转无符号整数
    print(int(part1, 2))
    
    # 第二部分:转8位有符号整数(补码)
    unsigned_val = int(part2, 2)
    print(unsigned_val - 256 if unsigned_val >= 128 else unsigned_val)
    
    # 第三部分:转ASCII字符
    print(chr(int(part3, 2)))

关键逻辑说明

  • 拆分方式:没必要把字符串转成列表,Python字符串本身支持切片操作,[:8]取前8位,[8:16]取中间8位,[16:]取最后8位,精准又高效。
  • 无符号整数转换:int(二进制字符串, 2)是Python内置的二进制转十进制方法,直接得到无符号整数结果。
  • 有符号整数转换:8位有符号数采用补码规则,最高位为1时表示负数。先转成无符号整数,若值≥128(即最高位为1),减去256(2^8)即可得到对应的负数。
  • ASCII字符转换:先把二进制转成十进制整数,再用chr()函数映射为对应的ASCII字符。

测试示例

输入:111100011110110100100100
输出:

241
-109
$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:35:16