如何从java中获取int中最重要的n位

时间:2015-03-05 11:14:46

标签: java caching bit-manipulation

我有一个int,我想获得java中最重要的19个位。我尝试了各种各样的方法,但都没有。 有人可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

从32位int,你想要保持19最重要,所以丢弃13最少;然后你向右移动13位,但必须摆脱可能的符号扩展,并使用19位模式:

(myint >> 13) & 0x7ffff

答案 1 :(得分:3)

添加到Bram的答案中,如果使用无符号移位,则甚至不需要AND

myInt >>> 13;将为您提供19MSB(尽管它们现在位于最低位)。

答案 2 :(得分:0)

整数是4字节,即4 * 8 = 32位。因此,如果你想获得第19位,你可能想尝试类似的东西:

 if (myint & 0X00002000 >> 19 == 1) {
     //do something
 }