* 总体概念: 1.位移运算符只对位进行操作
* 2.只能操作int整型数据类型
* 3.右移补高位,左移补底位
* >> 有正负之分的右位移运算符,把字节向右移由右边操作数指定的位数,如果左边操作数是正数,则移动的高位补0 ,反之则补1
* >>>无符号之分的右移运算符,即不管左边操作数的正负,高位都补0
* << 左移运算符,向左移动由右边操作数指定的位数,移动后底位自动补0
作用:
对于大数据的2进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源.
这是我现在位置发现的位移运算符的位移作用.可能还有,但是我真的不知道.
System.out.println("1<<2="+(1<<2));
System.out.println("1<<8="+(1<<8));
System.out.println("1<<16="+(1<<16));
System.out.println("1<<24="+(1<<24));
System.out.println("1<<31="+(1<<31));
System.out.println("1<<32="+(1<<32));
1<<2=4
1<<8=256
1<<16=65536
1<<24=16777216
1<<31=-2147483648
1<<32=1
位运算符就是指对整数的二进制表示中的每一位进行操作,所得的结果一定是整数:
位运算符:
~ 位反 ~00110011 11001100
& 位与 00110011&11101101 00100001
| 位或 00110011|11100001 11110011
^ 位异或 00110011^11100001 11010010
<< 左移 00110011<<2 11001100
>> 右移 10110011 >> 2 11101100
>>> 不带符号右移 10110011>>2 00101100