我有64位整数,我想保持最正常的60位并丢弃最重要的4位。我使用的是python 3.5.4。有关这个问题的任何建议吗?
我的代码生成类型错误:
def remove_padding(num):
num &= num >> 4
return num
TypeError: unsupported operand type(s) for >>: 'float' and 'int'
答案 0 :(得分:1)
如果我理解正确,您希望保持 60 最少有效位,对吗?通过右移,你将保留60 最多有效位。
...6....'....5....'....4....'....3....'....2....'....1....'....0
DDDDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK Input
0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK Output
D
=丢弃,K
=保留
在这种情况下,您只需要使用十六进制And
0FFFFFFFFFFFFFFF
输入:
num &= 0x0FFFFFFFFFFFFFFF