Java 位运算
1.运算规则
按位与(&) | 只要有一个操作数为0,结果就为0。 |
按位或(|) | 只要有一个操作数为1,结果就为1。 |
按位非(~) | 1变为0,0变为1。 |
按位异或(^) | 两操作数对应位置相同为0,不同为1。 |
左位移(<<) | 符号位不变,低位补0。如:2<<2结果为8。 |
右位移(>>) | 低位溢出,符号位不变,并用符号位补溢出的高位。如:-6>>2结果为-2。 |
2.运用实例
异或(^)
1.判断两个数是否同号(同正或同负或同为零)
if(a^b>0) a,b同号;
if(a^b=0) a,b同号且相等;
if(a^b<0) a,b异号。
2.交换两个数的值
起始:a=1,b=2;
a=a^b;
b=a^b;
a=a^b;
结束:a=2,b=1;
3.转换字母大小写
char a='a';
char B='B';
System.out.println((char)(a^32));// 输出:A
System.out.println((char)(B^32));// 输出:b