关于简单移位的问题。
public class TestShift {
public static void main(String[] args)
{
System.out.println(7>>2); //00000111-->00000001,1
System.out.println(7>>34); //取32/64的余数,实际上也是右移2,1
System.out.println(7>>-30); //加上32的整数倍,变成正数,实际上也是右移2,1
System.out.println(7<<2); //00000111-->00011100,28
System.out.println(-7>>2); //24个1+11111001-->11111110,-2
System.out.println(-7>>>2); //10亿左右,int 是四个字节的
/*-7: 24个1+11111001,无符号右移2位,得00+22个1+11111110,得正数10亿左右*/
}
}
这是在一篇博客上看的,标红的地方不懂诶