[英]python least significant 6 bits of integer
我正在嘗試查找16位整數的最低有效6位。 假設我的整數是139 / 0x008B。
>>> "{0:b}".format(139)
'10001011'
因此最低的6位是:
'001011'
>>> int('001011', 2)
11
但是,我以為可以使用>>運算符來執行此操作,但這並沒有給我期望的結果:
>>> 139 >> 6
2
有人可以解釋這兩者之間的區別嗎?
移位用於重新定位位,而不是用於隔離它們。 這稱為“屏蔽”,在您的情況下,您需要一個“與”數字的位屏蔽。 這是通過Python中的&運算符完成的。 它與邏輯上的“和”運算符根本不同,因此請不要混淆它們!
>>> bin(139 & 0b111111)
'0b1011'
我認為您可能想使用按位運算符“與”( &
),而不是向右移運算符( >>
)。
請嘗試以下方法: 139 & 0b111111
那應該給您6個最低有效位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.