【随手小记】_java位运算之左移&右移&无符号右移&与&异或

java位运算之左移&右移&无符号右移&与&异或

  • <<:左移运算符:左操作数按位左移右操作数指定的位数。移动得到的右边空位自动充零,注意包括符号位,也就是说左移运算符有可能改变一个数的正负。
  • >>:右移运算符:左操作数按位右移右操作数指定的位数。移动得到的左边空位自动充零,但是表示符号的最高位除外,正数右移高位补0,负数右移高位补1。
  • >>>:无符号右移运算符:左操作数按位右移右操作数指定的位数。移动得到的左边空位自动充零,无论是正数还是负数,最高位通通补0。

位运算与(&)常用准则

  1. n&1=1,则n二进制最后一位为1;
  2. n&1=0,则n二进制最后一位为0。

位运算异或(^)常用准则

  1. 任何数与0异或结果都为自身,
  2. 任何数与自身异或结果都为0,
  3. 异或运算符合交换律和结合律。