首页 > 解决方案 > dhash.get_num_bits_different 出错

问题描述

我正在关注这个库“dhash”,但在使用它时出错dhash.get_num_bits_different

def get_num_bits_different(hash1, hash2):
    return bin(hash1 ^ hash2).count('1')

hash1 = '3d77xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
hash2 = '9301xxxxxxxxxxxxxxxxxxxxxxxxxxxx'

get_num_bits_different(hash1, hash2)
>>
TypeError: unsupported operand type(s) for ^: 'str' and 'str'

标签: pythonstringhashbitwise-operators

解决方案


将字符串转换为 int,如:

get_num_bits_different(int(hash1, 16), int(hash2, 16))

测试代码:

def get_num_bits_different(hash1, hash2):
    return bin(hash1 ^ hash2).count('1')

hash1 = '3d77'
hash2 = '9301'

print(get_num_bits_different(int(hash1, 16), int(hash2, 16)))

结果:

10

推荐阅读