在python中如何将十进制转换为1的十六进制补码

2024-04-18 22:54:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要弄清楚,在python中,如何使用1的负数补码将有符号的十进制数转换为十六进制数。我需要得到的示例结果如下:

0 becomes 0000,

65.5 becomes 0041

200 becomes 00c8

-200 becomes ff37

我可以很容易地使用hex()得到正数,但是如何进行转换以获得负数的正确值?在


Tags: 示例符号hex负数补码正数becomesff37
1条回答
网友
1楼 · 发布于 2024-04-18 22:54:51

你的例子是错误的。用6.55你实际上是指65,这导致了{}。20变成{},而不是{},因为那将是{}。 0x20的一个补码是0xeb不是0x37或{}。在

要计算一补,可以使用XOR-operator。使用0xFF或{},这取决于预期数据的位深度。在

16位:

hex(0x14 ^ 0xFFFF) -> 0xffeb

0b0000000000010100 ^
0b1111111111111111
         
0b1111111111101011 -> 0xffeb

8位:

^{pr2}$

相关问题 更多 >