0
我有一个32位数字,我想将最后16位设置为零。在Python:按位和左/右移
#a is in base 10
In [143]: a
Out[143]: 536899058
通常情况下,我会做的数量和位掩码之间的位与。
# 11111111 11111111 00000000 00000000 is 4294901760 in base 10
In [145]: a & 4294901760
Out[145]: 536870912L
在这种特定的情况下,是否有在的任何缺点的由16个比特移位数到右边,然后移它回到左 16点的位置?
In [146]: (a >> 16) << 16
Out[146]: 536870912
我认为'a&0xFFFF0000'更清晰 – user3159253
反过来。首先,你的右移然后离开。你有负号吗? – Carsten
行动,对不起。不,没有负数。 –