Усечение Python до 32-битного

Как мне усечь мое возвращаемое значение до 32 бит? У меня есть следующий код,

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

Я хотел бы, чтобы возвращаемое значение было

"0x000000A" вместо "0xA0000000A" при звонке rotate_right(0xA000000)

2 ответа

Решение

0xFFFFFFFF - 32 бита, так что просто бинарный, и это с этим...

my_num& 0xFFFFFFFF

Если вы предпочитаете делать это вообще, а не только для 32 бит:

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

Это работает, потому что 2**numbits -1 все 1 в двоичном

Другие вопросы по тегам