java (异或,同或,与等 ) 代码填空

如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。
a = a ^ b;
b = _________;
a = _________;

真异或真为假,假异或假为假 || 真异或假为真,假异或真为真
--------------------------------------------------------------------------------------------
a^ b^ a=a-------->这个命题是成立的
--------------------------------------------------------------------------------------------
在下例中小写a,b都是指向原始值,大写指向当前值
a=a ^ b;(这里记作条件),并记作:第一步这里"b"还是原来的"b"只是"a"变成a ^ b记作A
---------------------------------
根据上面的命题,应该不难推出:
果让b=原来的"a",可以让现在的"A" : a ^ b "^" b即:A^b=a ^ b^b=a
不难看出b的值已经等于原来的a了记作B=a
经过上面的异或运算,现在的B已经是原来的a了.而现在的A还是a ^ b
----------------------------------------------------------------
当前B=a 当前 A=a ^ b
要得到原来的a等于原来的b.看上面两个等式不难推出
可以让A=B^A=a ^ b^ a 的结果赋值给A,改变当前A的值
此时B=a A=b

固:ab交换
1:a=a ^ b;
2:b=a ^ b;
3:a=a ^ b;;
或者
b=a ^ b;
a=a ^ b;
b=a ^ b;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-09
你好,答案是

a=a ^ b;
b=a ^ b;
a=a ^ b;

你完全可以把下面程序跑一遍,就会发现是这样的
public class test {
public static void main(String[] args) {
int a = 1;
int b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a + " " + b);
}
}
运行结果:
2 1

java中的“&”,“|”,“^”,“~”用法
(或)只要有其中一个为true,结果就是true。两边都为false,结果是false 1 | 0 = 0,0 | 1 = 0,0 | 0 = 0,1 | 1 = 1。^ (异或)两边相同是false,两边不同是true,**一个数异或同一个数两次,结果还是那个数。1 ^ 0 = 0,0 ^ 1 = 0,0 ^ 0 = 1,1 ^ 1 = 1 1 ^...

java中按位异或与逻辑异或的区别
位异或指:异或运算^,异或运算它都是以二进制数据为基础进行运算,1^1=00^0=11^0=10^1=1

java 异或 的 疑问
就是c[i]的二进制值异或'a'的二进制值 相同位变成0,不同位变成1.

java中异或是怎样算的
简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.For example:3^5 = 6 转成二进制后就是 0011 ^ 0101 二号位和三号位都是异值取1 末尾两个1同值取零,所以3^5 = 0110 = 6 而 i = 50 ,j = 60;所以:i 的二进制 = 00110010 j 的二进制 = 00111100 同位相同取0,不同...

java 中有同或运算符吗?
Java中没有同或运算符。同或运算是一种逻辑运算,它可以对两个操作数进行逻辑异或运算,然后对结果取反,最终得到逻辑同或运算的结果。同或运算符通常表示为符号 `⊕̸`。在Java中,虽然没有同或运算符,但是可以通过逻辑与运算符、逻辑或运算符和逻辑非运算符来实现同或运算。同或运算可以表示...

java中异或是怎样算的
异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。例如 int a=4;int b=6;int c = a^b;\/\/c的值是a和b的异或...

编程算法中10|6=14,10^6=12(即10或6,10异或6)这其中怎么个运算,求过程...
先把10转换成2进制数是1010,6 转换成2进制数 0110,然后进行或运算 得 1110 ,进行异或 运算得 1100 或运算:有1为1,同0为0;异或 :相同为0 ,不同为1;

逐位与、或、异或的赋值求计算过程
先将5,9转换二进制 5=101(二进制),9=1001(二进制),然后与位数多那个补齐也就说5=0101(二进制)5 0101 9 1001 --- 1 0001 过程是左起第一位0&1得0,第二位1&0得0,第三位0&0得0,1&1得1,所以得到结果为0001;十进制也是1;同理按位或,异或同理可得 ...

Verilog语法速成(二)
关系运算符表示大于、小于、不小于、不大于。相等运算符包括逻辑相等、全等、逻辑不等、不全等。逻辑运算符包括逻辑与、或、非。位运算符包括按位取反、与、或、异或和同或。归约运算符如与、或、异或。移位运算符包括逻辑右移、逻辑左移。条件运算符用于选择表达式。连接运算符用于连接多个表达式。复制...

java:^ 的意思?
Java中的位运算符!用来做按位异或运算的。异或指的是相同位值相同异或结果为0,相同位异或值不同结果为1。例如:int i = 2^3;首先需要将数字转换成二进制数,然后进行运算。2的二进制数是10 3是11 10 11 ^ --- 01 所以,i中的结果是数字1。

相似回答