我有一个int,我想获得java中最重要的19个位。我尝试了各种各样的方法,但都没有。 有人可以帮助我吗?
答案 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
}