JavaSmall dessert(算起来很有趣)
运算符
优先级与为运算
int a=3,b=2;
System.out.println(3|9);
System.out.println(a|b*2^4>>a++);
。
- 从优先级最高的开始计算
- b*2=6=110(2)
- 4>>a++(将4的二进制100向右移动3为结果为0,再++为1)
- a|6^0(6的二进制110异或0结果为110)
- 11|110(11或运算110结果为111)
所以结果为7
- b*2=6=110(2)
计算式 | 过程(二进制) | 结果 |
---|---|---|
a|b*2^4>>a++ | b*2=6=110(2) | a|110^4>>a++ |
a|110^4>>a++ | 4>>a++ | a|110^1 |
a|110^1 | 110^1 | a|111 |
a|110^1 | 11|111 ` | 111 |
^ | 异或 | 相同为0,不同为1 |
---|---|---|
| | 或 | 只有0|0是0,其他都是1 |
>> | 位运算符 | 向右移动其二进制 |