位运算指的是进行二进制位的运算,常用的位运算符如表所示。
位运算符 | 说明 |
~ | 取反 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 左移运算符,左移1位相当于乘2 |
>> | 右移运算符,右移1位相当于除2取商 |
左移运算和右移运算
//移位 int c=3; System.out.println(c<<1); //6 左移1位相当于乘2 System.out.println(c<<2); //12 左移2位相当于乘4 int d=12; System.out.println(d>>1); //6 右移1位相当于除2
雷区:
1. &和|既是逻辑运算符,也是位运算符。如果两侧操作数都是boolean类型,就作为逻辑运算符。如果两侧的操作数是整数类型,就是位运算符。
2. 不要把“^”当做数学运算“乘方”,是“位的异或”操作。