我想使用 Pythonhash()函数从对象中获取整数哈希值。但是内置hash()可以给出负值,我只想要正值。我希望它在 32 位和 64 位平台上都能正常工作。
即在 32 位 Python 上,hash()可以返回范围-2**31为2**31 - 1. 在 64 位系统上,可以返回范围为hash()的整数。-2**632**63 - 1
但我想要一个范围0在2**32-132 位系统和64 位系统0上的哈希值。2**64-1
在 32 位或 64 位目标平台范围内,将哈希值转换为其等效正值的最佳方法是什么?
(上下文:我正在尝试创建一个新的random.Random样式类。根据random.Random.seed()文档,种子“可选参数 x 可以是任何可散列的对象。”所以我想复制该功能,除了我的种子算法不能处理负整数值,仅处理正整数。)