2024-04-18 22:54:51 发布
网友
我需要弄清楚,在python中,如何使用1的负数补码将有符号的十进制数转换为十六进制数。我需要得到的示例结果如下:
0 becomes 0000,65.5 becomes 0041200 becomes 00c8-200 becomes ff37
0 becomes 0000,
65.5 becomes 0041
200 becomes 00c8
-200 becomes ff37
我可以很容易地使用hex()得到正数,但是如何进行转换以获得负数的正确值?在
你的例子是错误的。用6.55你实际上是指65,这导致了{}。20变成{},而不是{},因为那将是{}。 0x20的一个补码是0xeb不是0x37或{}。在
6.55
65
20
0x20
0xeb
0x37
要计算一补,可以使用XOR-operator。使用0xFF或{},这取决于预期数据的位深度。在
0xFF
16位:
hex(0x14 ^ 0xFFFF) -> 0xffeb 0b0000000000010100 ^ 0b1111111111111111 0b1111111111101011 -> 0xffeb
8位:
你的例子是错误的。用}。},而不是{},因为那将是{}。
}。在
6.55
你实际上是指65
,这导致了{20
变成{0x20
的一个补码是0xeb
不是0x37
或{要计算一补,可以使用XOR-operator。使用},这取决于预期数据的位深度。在
0xFF
或{16位:
8位:
^{pr2}$相关问题 更多 >
编程相关推荐