python - 如何使用 python 将带符号的整数打印为二进制补码的十六进制数?

标签 python integer hex signed twos-complement

我有一个负整数(4 个字节),我希望它的二进制补码表示形式为十六进制形式。

>>> i = int("-312367")
>>> "{0}".format(i)
'-312367'
>>> "{0:x}".format(i)
'-4c42f'

但我想看到“FF...”

最佳答案

这是一种方法(对于 16 位数字):

>>> x=-123
>>> hex(((abs(x) ^ 0xffff) + 1) & 0xffff)
'0xff85'

(虽然可能不是最优雅的方式)

关于python - 如何使用 python 将带符号的整数打印为二进制补码的十六进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235515/

相关文章:

python - Python 整数上的无效语法混淆

python - json.loads() 不保持秩序

c - 函数无法运行(我的第一个 C 项目)

node.js - 如何将十六进制字符串转换为base64以便在NodeJS中保存图像

Python 正则表达式 : how to parse repeated groups in a string?

python - Seaborn FacetGrid 堆叠条形图

python-3.x - 为什么在 python 中使用 int() 将二进制转换为整数时,当给定 2 作为基本参数时会出现错误

c++ - 如何读取整数反转的行?

C 表示以 2 为底数的 int

c - 从文本文件中读取十六进制