簡體   English   中英

Python的最低有效6位整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM