java 位运算

  众所周知,计算机是用二进制存储的,所有二进制的计算对计算机来说是最高效的。针对工具类或者被调用频率很高的算法,我们可以考虑使用位运算。位运算分为逻辑运算和移位运算。

  移位运算:

          左移:操作符号为 << ,向左移动,右边的低位补0,左边高位舍弃。将二进制看做整数,左移移位相当于乘以2。

          有符号又移:操作符为 >>>,向右移动,右边的舍弃,左边补0

          无符号又移:操作符为 >>,向右移动,右边的舍弃,左边的值取决于原来的高位,原来是1就补1,原来是0就补0。将二进制看做整数,又移相当于除以2

 

  逻辑运算:

         按位与:操作符为&,两位都为1才为1,否则为0

         使用场景:

         1 判断奇偶数,数字与1进行按位与,为1则为偶数,为0则为奇数。

         2 盘算是否为2的整数次幂,n&(n-1) == 0,则为是,否则不是2的整数次幂

 

        按位或:操作符为 |,只要有1位为1,就位1.两位同时为0则为0

 

       按位取反:操作符为~,1变为0,0变为1

       按位异或:操作符为^,两个数相异为1,相同为0

        使用场景:

        1 不占用额外空间的交换,交换a,b  a=a^b b=a^b a=a^b

        2 清0 ,任何数字异或自己,结果为0

        3 判断两个数是否相等,类似于场景2,将两数异或,判断是否为

        4 加密

 

你可能感兴趣的:(web后端)