^操作符在java中是如何工作的?补充的
类似的问题也被问到了 但我觉得有些东西不见了 根据@Carl Smotricz的例子: “定义按位异或的一种简单方法是,在两个输入数字不同的每个地方,结果都有一个1。” 因此: 0101^0100=0001(5^4=1) 这一点很清楚,但有以下几点: 15^4基于这种逻辑: 1111 一百 应该是0111,但编译器给出:1011 即使我们使用: 逻辑或: 假| |假:假 假|真:真 真|假:真^操作符在java中是如何工作的?补充的,java,operators,xor,Java,Operators,Xor,类似的问题也被问到了 但我觉得有些东西不见了 根据@Carl Smotricz的例子: “定义按位异或的一种简单方法是,在两个输入数字不同的每个地方,结果都有一个1。” 因此: 0101^0100=0001(5^4=1) 这一点很清楚,但有以下几点: 15^4基于这种逻辑: 1111 一百 应该是0111,但编译器给出:1011 即使我们使用: 逻辑或: 假| |假:假 假|真:真 真|假:真 true | | true:true对采用不同位数表示的数字应用逐位运算符时,需要添加前导零,以便它们
true | | true:true对采用不同位数表示的数字应用逐位运算符时,需要添加前导零,以便它们“对齐” 在您的15和4示例中:
15确实是
1111
。4是100
,您需要将前导零添加到“pad”中,最多四位,即0100
。现在,它们之间的xoring应该在两位不同的任何位置给出一个1
,1011
,这是您自己尝试时观察到的结果。15^4=>1111^0100=1011
。你似乎等于4,等于100,等于1000。这是不正确的,因为它将有前导0,而不是尾随0。不要忘记前导0,和或!=XOR。可能的副本