Python截断为32位

时间:2014-11-06 04:34:38

标签: python bit-manipulation

如何将返回值截断为32位?我有以下代码,

def rotate_left(input, shift):
    return hex((input << shift) | (input >> (32 - shift)))

我希望返回值为

在调用"0x000000A"

时,

"0xA0000000A"代替rotate_right(0xA000000)

2 个答案:

答案 0 :(得分:4)

0xFFFFFFFF是32位,所以只是二进制,它就是......

my_num& 0xFFFFFFFF

答案 1 :(得分:0)

如果您希望一般地这样做,而不仅仅是32位:

def truncate(val, numbits):
    return val & (2**numbits - 1)

之所以有效,是因为2**numbits -1的二进制全为1。