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