首页 > 解决方案 > 如何获得带符号的十六进制值?

问题描述

我想知道如何获得有符号十六进制值的乘积值。

给定

a = 0x7FBDB2
b = 0x06F8C
results = hex(a * b)
print(results)

# RESULTS
0x37a91beb58

but the expected results is 0x1FFE31BEB58

获得此签名值的最佳方法是什么?

标签: python-3.xbinary

解决方案


Python 变量设置为无符号,以便您获得有符号变量的结果。首先,您需要将变量转换为二进制补码(注意:将 0 作为 MSB(最左边的二进制数字)意味着您不需要进行二进制补码)然后开始您的操作。如果结果的 MSB 不是 0,则需要二进制补码。


推荐阅读