python-3.x - 如何获得带符号的十六进制值?
问题描述
我想知道如何获得有符号十六进制值的乘积值。
给定
a = 0x7FBDB2
b = 0x06F8C
results = hex(a * b)
print(results)
# RESULTS
0x37a91beb58
but the expected results is 0x1FFE31BEB58
获得此签名值的最佳方法是什么?
解决方案
Python 变量设置为无符号,以便您获得有符号变量的结果。首先,您需要将变量转换为二进制补码(注意:将 0 作为 MSB(最左边的二进制数字)意味着您不需要进行二进制补码)然后开始您的操作。如果结果的 MSB 不是 0,则需要二进制补码。
推荐阅读
- postgresql - PostgreSQL - 授权的附加外键约束
- reactjs - 将枚举中的 {{}} 替换为 react 中来自 api 的数据
- key - 我可以在 Dynamodb 中为分区键和唯一排序键使用常量吗?
- rest - RabbitMQ 事件订阅者 - 哪个好?Windows 服务或 Http 服务 (REST API)
- spring-boot - Thymeleaf 中的 @{..} 表达式是什么
- javascript - 计算字符串中的单词出现次数 javascript
- c++ - 如何在 Debian Wheezy 中编译 Mono
- javascript - 如何获取光标存在于可内容编辑的 div 中的 div?
- go - 带有和不带有空白标识符的 Golang 计时
- plot - Gnuplot:是否可以跳过以给定字符开头的标题行?