Java位移运算符的原理和作用

*   总体概念: 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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwspzx.html