位运算符
位运算符是针对二进制的每一位进行运算的符号,它是专门针对0和1进行新操作的。
| 运算符 | 运算 | 范例 | 结果 |
| & | 按位与 (都为1为1) | 0&0 | 0 |
| 0&1 | 0 | ||
| 1&0 | 0 | ||
| 1&1 | 1 | ||
| | | 按位或 (有1为1) | 0|0 | 0 |
| 0|1 | 1 | ||
| 1|0 | 1 | ||
| 1|1 | 1 | ||
| ^ | 按位异或 (不同为1) | 0^0 | 0 |
| 0^1 | 1 | ||
| 1^0 | 1 | ||
| 1^1 | 0 | ||
| ~ | 取反 | ~0 | 1 |
| ~1 | 0 | ||
| << | 左移 | (正数)0000 0010<<2 | 0000 1000 |
| (负数)1001 0011<<2 | 0100 1100 | ||
| >> | 右移 | 0110 0010>>2 | 0001 1000 |
| 1110 0010>>2 | 1111 1000 | ||
| >>> | 无符号右移 | 0110 0010>>>2 | 0001 1000 |
| 11...1110 0010>>>2 | 0011...11 1000 |
目录
位运算符&
位运算符&是将参与运算的两个二进制数进行与运算,如果两个二进制位都为1,则该位的运算结果为1,否则为0。
例 :
位运算符|
位运算符&是将参与运算的两个二进制数进行或运算,如果二进制位上有一个值为1,则该位的运行结果为1,否则为0。
例:
位运算符^
位运算符^是将参与运算的两个二进制数进行异或运算,如果二进制位相同,则值为0,否则为1。
例:
位运算符~
位运算符~只针对一个操作数进行操作,如果二进制位是0,则取反值1;如果二进制位是1,则取反值0。
例:
位运算符<<
位运算符<<就是将操作数所有二进制位向左移动一位。运算时,右边的空位补0,左边移走的部分舍去。
例:
面试题:4x8最快的方式——4<<3。
位运算符>>——有符号右移
位运算符>>就是将操作数所有二进制位向右移动一位。运算时,左边的空位根据原数的符号位补0或者1(原来是负数就补1,是正数就补0)。
例:
位运算符>>>——无符号右移
位运算符>>>就是将操作数所有二进制位向右移动一位。运算时,左边的空位补0(不考虑原数的正负数)。
例:
public class FuShu { public static void main(String[] args) { System.out.println(Integer.toBinaryString(-6)); int m=-6; m=m>>>2; System.out.println(Integer.toBinaryString(m)); System.out.println(m); } }运行结果:
版权声明:本文为wqh101121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。







