java异或运算

java异或运算,第1张

java和c的执行是不一致的
相同之处:i ^= (j ^= (i ^= j)); java和C都是这个执行顺序;
不同之处:
java:执行完第一个(i ^= j)的时候,最左边的i的值还是1而不会是(i ^= j)的值
C:执行完第一个(i ^= j)的时候,最左边(第一个)i的值是(i ^= j)
你的程序改成这样就可以了:
j ^= i ^= j;
i ^= j;

i =i^j;
j=i^j;
i=i^j;

1、异或(xor)是一个数学运算符。它应用于逻辑运算。

2、异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

3、如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

4、逻辑异或运算简称异或。英文为exclusive OR,或缩写成xor。

5、异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

扩展资料

一、运算法则

1、a ⊕ a = 0

2、a ⊕ b = b ⊕ a

3、a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;

4、d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c

5、a ⊕ b ⊕ a = b

二、逻辑表达式:F=AB’⊕A’B((AB’⊕A’B)’=AB⊙A’B’,⊙为“同或”运算)

参考资料:

百度百科—异或

提供思路
将每个字节左移拼成8个字节 第一个左移56 第二个48。。。
0x30 0x31 0x39 0x39 0x39 0x39 0x39 0x39
0011 0000 0011 0001 0011 1001 0011 1001 0011 1001 0011 1001 0011 1001 0011 1001 。。。
然后将3个8字节异或 最后右移还原

存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或 *** 作,
但是不存在字符串的异或
如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将
11111111转换成相应的数据输出结果
注意:Java中没有字符串的异或、与、或、非 *** 作,不是C语言那样(除非是你自己定义异或 *** 作)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13331573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存