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

Python3中如何将-1输出为0xFF、0xFFFF等指定长度的无符号十六进制格式

实现方法

Python的整数是可变精度的有符号类型,默认不会按固定位宽做无符号转换,你只要按照你需要的输出位宽做一次位掩码截断,就能得到对应格式的十六进制结果:

  • 要输出8位无符号的0xFF格式,对数值和0xFF做按位与运算
  • 要输出16位无符号的0xFFFF格式,对数值和0xFFFF做按位与运算
  • 更高位宽同理,32位就用0xFFFFFFFF做掩码

示例代码

对应你给出的场景修改后的实现如下:

>>> key = -1
# 输出0xFF格式
>>> print(hex(key & 0xFF))
0xff
# 输出0xFFFF格式
>>> print(hex(key & 0xFFFF))
0xffff
# 格式化输出大写、指定宽度
>>> print("Key={:4X}".format(key & 0xFF))
Key=  FF
# 带0x前缀的格式化输出
>>> print("Key={:#4X}".format(key & 0xFF))
Key= 0xFF
# 16位带前缀格式化输出
>>> print("Key={:#6X}".format(key & 0xFFFF))
Key=0xFFFF

如果需要频繁调用,可以封装为通用函数:

def to_unsigned_hex(val: int, bits: int = 8) -> str:
    mask = (1 << bits) - 1
    return hex(val & mask)

# 调用测试
print(to_unsigned_hex(-1, 8))  # 0xff
print(to_unsigned_hex(-1, 16)) # 0xffff

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 11:33:03