虽然在平常的开发中很少用到Java的这三个操作符,但是今天遇到了,有必要研究研究。本质上没有什么难的。自己写了几行代码,用作测试,下面直接上代码:
System.out.printf("a = 0x%x \n", a);
int b = a >> 4;
System.out.printf("b = 0x%x \n", b);
int c = a >>> 4;
System.out.printf("c = 0x%x \n", c);
int d = a << 4;
System.out.printf("d = 0x%x \n", d);
然后运行直接得到结果如下:
a = 0x80008000
b = 0xf8000800
c = 0x8000800
d = 0x80000
这里a = 0x80008000 由整数表示方法知道,该数为一个负数-2147450880,分析输出结果可以知道。
1: >> 运算符用于有符号的右移,又叫做算数右移, 在移动过程中,最高位补符号位。
2:>>>运算符用于无符号的右移,在移动过程中,最高位补0.
3:<< 运算福用户左移,这里没有符号的概念,左移后,最低位补0.
需要注意的是java中不支持<<<运算符。