Java &;除了按位和
我正在阅读Kathy和Bret写的SCJP 6书,偶然发现了这本书的一些文本,第4章(操作员) 因为你知道 既然java不是C++,java操作符一般不会感到惊讶。 超载。但是,有一些异常运算符会过载:Java &;除了按位和,java,operators,bitwise-operators,Java,Operators,Bitwise Operators,我正在阅读Kathy和Bret写的SCJP 6书,偶然发现了这本书的一些文本,第4章(操作员) 因为你知道 既然java不是C++,java操作符一般不会感到惊讶。 超载。但是,有一些异常运算符会过载: +运算符可用于将两个数字基元添加到一起,或添加到 如果任一操作数是字符串,则执行串联操作 &、|和^运算符都可以以两种不同的方式使用,尽管 在这个版本的考试中,他们的玩弄能力不会被测试 除了按位and、OR和XOR之外,我无法理解java中&、|和^运算符的第二种用法。java中使用&ope
- +运算符可用于将两个数字基元添加到一起,或添加到 如果任一操作数是字符串,则执行串联操作
- &、|和^运算符都可以以两种不同的方式使用,尽管 在这个版本的考试中,他们的玩弄能力不会被测试
除了按位and、OR和XOR之外,我无法理解java中&、|和^运算符的第二种用法。java中使用&operator的两种不同方式是什么?
&
可以作为二进制AND运算符的非短路版本应用于两个布尔操作数(与短路&
运算符不同)
|
可以作为二进制或运算符的非短路版本应用于两个布尔
操作数(与短路|
运算符不同)
^
(异或)也可以应用于两个布尔操作数
总之,所有3个运算符都可以用作布尔运算符(应用于布尔操作数时)或位运算符(应用于整数操作数时)
这些运算符在中进行了说明:
15.22.2。布尔逻辑运算符&、^和|
当&、^或|运算符的两个操作数均为布尔或布尔类型时,则按位运算符表达式的类型为布尔。在所有情况下,操作数都会根据需要进行解装箱转换(§5.1.8)
- 对于&,如果两个操作数值均为真,则结果值为真;否则,结果为假
- 对于^,如果操作数值不同,则结果值为真;否则,结果为假
- 对于|,如果两个操作数值都为false,则结果值为false;否则,结果是正确的
小把戏:a^b
和a是一样的=b带有booleans@MarkJeronimus是的,这就是布尔异或的行为。