当我尝试右移一个负字节时,我意识到在执行移位之前它已转换为int。
byte bVar = (byte)-1;
System.out.println(bVar >>> 1);// this prints 2147483647
但是我想“转移负字节”,好像零被附加到重要的一面。
目前我这样做。 127是我想要的结果。
System.out.println((bVar & 0xFF) >>> 1);// this prints 127
但这看起来并不是那么简单。它涉及3个步骤(转换和2个运算符)。
有更好的方法吗?