java位运算相关知识总结

java中位运算包括:与运算、或运算、非运算、异或运算、左移运算、右移运算、无符号右移运算

注意:无“无符号左移运算”


1、与运算(&)

  • 都为1则为1,否则为0
  • 任何数 & 0:消除功能
  • 任何数 & 1 :保留功能
  • 例如:
    java位运算相关知识总结

2、或运算(|)

  • 有1则为1,否则为0
  • 例如:
    java位运算相关知识总结

3、非运算(~)

  • 取反
  • 例如:
    java位运算相关知识总结

4、异或运算(^)

  • 相同则为0,不同则为1
  • 例如:
    java位运算相关知识总结

5、左移运算(<<)

  • 将二进制数向左移动N位,在低位上补上相应位数的0(N位0)
  • 左移后的数为:原数 * 2 ^ N
  • 例如:
    java位运算相关知识总结

6、右移运算(>>)

(1)、正整数右移运算

  • “无符号”右移运算符,将运算符左边的十进制数值转为二进制后运算,二进制数据整体右移指定的位数,采用0扩展机制无论值为正负,都在高位补0;
  • 例如:
    java位运算相关知识总结

(2)、负整数右移运算

  • 负整数右移运算不同于正整数
  • 负数求二进制:(以-21为例)
    java位运算相关知识总结
  • 负数右移运算(以-21为例)
    java位运算相关知识总结

7、无符号右移运算(>>>)

(1)、正整数无符号右移运算

  • 同右移运算

(2)、负整数无符号右移运算

  • 同右移运算,高位补0