我最近在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) –