默认情况下,Python(<;<;)中的“左移位”操作充当算术移位,并在表示int的位的末尾追加0位
例如: 100<&书信电报;1返回200
在二进制表示中,我们可以看到100=0b1100100(7位)和100<&书信电报;1=0b11001000(8位)
在Python3中,执行逻辑左移位的最佳方法是什么,其中位数保持不变,但值向左移位
例如: 100<&书信电报;1将返回72
在二进制表示中,100=0b1100100和100<&书信电报;1=0b1001000 我们保留了相同的7位,但只是向左移动了一位,并在末尾附加了一个0
您可以使用^{} 获取表示该数字所需的位数,然后
and
使用(1 << bitlength) - 1
移位的结果将结果限制为这么多位:输出:
如果要将输出限制为固定位数
b
,则需要使用(1 << b) - 1
屏蔽:输出:
相关问题 更多 >
编程相关推荐