我想知道如何获得带符号十六进制值的乘积值。
给予
a = 0x7FBDB2
b = 0x06F8C
results = hex(a * b)
print(results)
# RESULTS
0x37a91beb58
but the expected results is 0x1FFE31BEB58
获得此有符号值的最佳方法是什么?
答案 0 :(得分:-1)
Python变量设置为unsigned,以使您获得signed变量的结果。首先,您需要将变量转换为二进制补码(注意:MSB为0(二进制数字的最左边数)意味着您不需要进行二进制补码),然后开始操作。如果结果的MSB不为0,则需要对其进行二进制补码。