java中的按位操作符:按位与(&),按位或(|),按位异或(^),按位非(~)
1. 按位与(&):如果2个输入位都是1,则生成一个输出位1,否则生成一个输出位0——————都为1则为1,否则均为0;
2. 按位或(|):如果2个输入位中有一个是1,则生成一个输出位1,只有在2个输入位都为0的情况下,它才生成一个输出位0——————都为0则为0,否则均为1;
3. 按位异或(^):如果输入位的某一个是1,但不全都是1,那么它生成一个输出位1—————按位取反;
4. 按位非(~):也称取反操作,属于一元操作符,只对一个操作数进行操作(其它均是二元操作符),它生成与输入位相反的 值,若输入0,则输出1,若输入1,则输出0—————相同为0,不同位1。
移位运算
左移运算(<<):从右往左移动,x*2的几次方(空位补0)
右移运算(>>):从左往右移动,x/2的几次方(空位正数不0,负数补1)
无符号右移(>>>):从左往右移动,x/2的几次方(不管正负,均补0)