我正在寻找比较Python3中散列的位,作为Hashcash系统的一部分。 因此,举例来说,我想知道,如果一个SHA256散列的前N位为0比较Python3中散列位的最快方法是什么?
现在,我基于十六进制版本
if newhash.hexdigest()[0:4] == '0000'
这样做,但这种不让我尽可能细化 - 我宁愿比较原始位,这让我可以更密切地改变匹配0的数量。
我得到得到的位值通过一个令人费解的跳
bin(int(h.hexdigest(), 16))[2:]
比较但这似乎像它不可能是做最快/正道。
我会很感激的权利/正确的方法去做任何意见;)
感谢,
-CPD
计数前导零([找到最重要的位集](http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogObvious))可以相对于一般比特比较进行优化。 – jfs 2013-03-26 18:01:03