我最近在java項目中工作,我想處理一個整數的位,以便我可以檢查一個數字的LSB。 我已經找到了很多可以妥善處理的辦法,但沒有...有沒有辦法讓我(我改變)LS從int?
例
鍵= 4
重點4
二進制是100
我想以某種方式提取3 LSB 4
這是1
。 有沒有一種算法可以做到這一點?
我最近在java項目中工作,我想處理一個整數的位,以便我可以檢查一個數字的LSB。 我已經找到了很多可以妥善處理的辦法,但沒有...有沒有辦法讓我(我改變)LS從int?
例
鍵= 4
重點4
二進制是100
我想以某種方式提取3 LSB 4
這是1
。 有沒有一種算法可以做到這一點?
使用比特移位及位與:(索引值爲從0)
int getBit(int number, int index)
{
return (number >> index) & 1;
}
getBit(4, 2)
返回1
您還可以使用% 2
而不是& 1
。
優秀和優雅的方法!非常感謝你!也許這將是靈活性的+1 – Antifa
+1。 –
使一個位掩碼和移位:
int bitmask = 4;
int extractedBit = (i & BIT3) >> 2; // is now the 3rd lsb.
你知道二進制算術嗎?使用它。另外,什麼樣的整數值'鍵'去? – Hanut
@Hanut正值 – Antifa
[Java教程:位移和位移運算符](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) –