Java XOR运算符问题
我对Java中的XOR运算符^有一些问题 我一直认为Java没有逻辑异或运算符,因为有人告诉我,^是按位的。 今天我发现一些(未经证实的)帖子(没有来源)说,^在Java中重载,用作布尔值的逻辑异或和整数的位异或 哪种说法是正确的?谁能提供一些可靠的消息来源 如果^重载,它接受哪些类型?定义 当运算符Java XOR运算符问题,java,bit-manipulation,xor,Java,Bit Manipulation,Xor,我对Java中的XOR运算符^有一些问题 我一直认为Java没有逻辑异或运算符,因为有人告诉我,^是按位的。 今天我发现一些(未经证实的)帖子(没有来源)说,^在Java中重载,用作布尔值的逻辑异或和整数的位异或 哪种说法是正确的?谁能提供一些可靠的消息来源 如果^重载,它接受哪些类型?定义 当运算符&、^或|的两个操作数的类型为 可转换(§5.1.8)为原始整数类型,二进制数字 提升首先在操作数上执行(§5.6.2) 按位运算符表达式的类型是 操作数 对于^,结果值是操作数值的按位异或 及
&
、^
或|
的两个操作数的类型为
可转换(§5.1.8)为原始整数类型,二进制数字
提升首先在操作数上执行(§5.6.2)
按位运算符表达式的类型是
操作数
- 对于
,结果值是操作数值的按位异或李>^
&
、^
或|
运算符的两个操作数均为布尔型
或
Boolean
,则按位运算符表达式的类型为Boolean
。
在所有情况下,操作数都要进行拆箱转换(§5.1.8)
必要时
- 对于^,如果操作数值不同,则结果值为
; 否则,结果为true
false
Java中没有重载运算符的概念。您应该将^视为按位异或 您应该将布尔值视为false=0和true=1的单个位
第二句话和你的问题有很大关系,就像它和程序员一样思考一样 我认为将操作符称为“重载”是可以的,这只是一个一般概念。但是当然,你不能以C++或其他语言的方式来超载操作员。如果不是语言术语,那么AJB-IMO。在谈论这种语言时,我会避免使用它。Java中有两个
^
运算符,一个按位运算符,一个逻辑运算符。