java位运算相关知识总结
java中位运算包括:与运算、或运算、非运算、异或运算、左移运算、右移运算、无符号右移运算
注意:无“无符号左移运算”
1、与运算(&)
- 都为1则为1,否则为0
- 任何数 & 0:消除功能
- 任何数 & 1 :保留功能
- 例如:
2、或运算(|)
- 有1则为1,否则为0
- 例如:
3、非运算(~)
- 取反
- 例如:
4、异或运算(^)
- 相同则为0,不同则为1
- 例如:
5、左移运算(<<)
- 将二进制数向左移动N位,在低位上补上相应位数的0(N位0)
- 左移后的数为:原数 * 2 ^ N
- 例如:
6、右移运算(>>)
(1)、正整数右移运算
- “无符号”右移运算符,将运算符左边的十进制数值转为二进制后运算,二进制数据整体右移指定的位数,采用0扩展机制无论值为正负,都在高位补0;
- 例如:
(2)、负整数右移运算
- 负整数右移运算不同于正整数
- 负数求二进制:(以-21为例)
- 负数右移运算(以-21为例)
7、无符号右移运算(>>>)
(1)、正整数无符号右移运算
- 同右移运算
(2)、负整数无符号右移运算
- 同右移运算,高位补0。