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

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

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

(myint >> 13) & 0x7ffff 

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

myInt >>> 13; 会给你19MSB(尽管它们现在位于最低位)。

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

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