草庐IT

199703103

全部标签

python - 如何在python中将负整数值转换为十六进制

我使用python2.6>>>hex(-199703103)'-0xbe73a3f'>>>hex(199703103)'0xbe73a3f'正负值一样吗?当我使用calc时,该值为FFFFFFFFF418C5C1。 最佳答案 Python的整数可以任意增长。为了计算原始two's-complement按照您想要的方式,您需要指定所需的位宽。您的示例以64位二进制补码显示-199703103,但它也可能是32位或128位,导致0xf'的数量不同s开头。hex()不这样做。我建议以下作为替代方案:deftohex(val,nbits):

python - 如何在python中将负整数值转换为十六进制

我使用python2.6>>>hex(-199703103)'-0xbe73a3f'>>>hex(199703103)'0xbe73a3f'正负值一样吗?当我使用calc时,该值为FFFFFFFFF418C5C1。 最佳答案 Python的整数可以任意增长。为了计算原始two's-complement按照您想要的方式,您需要指定所需的位宽。您的示例以64位二进制补码显示-199703103,但它也可能是32位或128位,导致0xf'的数量不同s开头。hex()不这样做。我建议以下作为替代方案:deftohex(val,nbits):