Java两数交换: a=a^b; b=a^b; a=a^b; "^"什么意思啊?
发布网友
发布时间:2024-07-13 04:05
我来回答
共5个回答
热心网友
时间:2024-07-20 16:04
^是异或运算符,是二进制级别的运算符
如:
1000 1010 ^
1000 1101 ---->0000 0111
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1,0^1=1, 1^1=0
更直观点的表示:true 的二进制是 1, false是0
true ^ true ----->false
true ^ false ----->true
false ^ false ---->false
热心网友
时间:2024-07-20 16:04
那个符号是异或!逻辑运算符!
还可以这么做!
a=a+b;
b=a-b;
a=a-b;
热心网友
时间:2024-07-20 16:05
对于二进制而言有一个特性:两次相同的异或等于无效操作.
a^b^b = a
所以第二句可以翻译为 b = a^b^b
第三句:a = a^b^a
热心网友
时间:2024-07-20 16:05
int a = 10; // 00001010(二进制)
int b = 5; // 00000101(二进制)
∵0^0=0,1^1=0,0^1=1,1^0=1
∴00001010^00000101=00001111
∵二进制00001111=十进制15
∴a^b = 15
热心网友
时间:2024-07-20 16:06
位运算符 按位取反
基础知识啊
Java两数交换: a=a^b; b=a^b; a=a^b; "^"什么意思啊?
^是异或运算符,是二进制级别的运算符 如:1000 1010 ^ 1000 1101 --->0000 0111 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1,0^1=1, 1^1=0 更直观点的表示:true 的二进制是 1, false是0 true ^ true --->false true ^ false --...
a= a ^ b; b = a ^ b; a = a ^ b;
a=a^b,现在a存的是原始的a^b的值,为了方便表示,改用A表示,也就是A=a^b b=a^b,这里的a就是上一步中的A,也就是b=A^b=a^b^b=a,为了区分,改为B=a a=a^b,这里a,b是前面的A,B,也就是a=a^b^a=b 自此,a,b的值实现了交换 ...
java中a=a^b;b=a^b;a=a^b;它的变化详细过程是怎样的?
位运算是C语言的一大特色,利用异或运算可以实现交换两个数,原理是一个整数与另外一个数进行两次异或运算仍然是其本身,基本原理用式子表达如下:(1) A ^ A = 0;(2) A = A ^B;(3) B = A ^B;(相当于B = A ^ B ^ B ,即 B = A)(4) A= A ^ B;(相当于A = A ^B ^A ,...
a=a^b,b=a^b,a=a^b就可以进行两个数的交换,向这样的技巧还有哪些啊
这个是通过异或交换.类似的 还有加法+减法 乘法+除法 比如 a=a+b b=a-b a=a-b 用乘除的类似 a=a*b b=a/b a=a/b 不过 不管哪种都是有缺陷的. 知道就好 实际上没必要真用.用加减乘除的 有可能出现溢出.用异或的, 当a b为相同单位时, 会出错....
a ^= b ^= a是什么意思?
将b的原始值传递给a,同时b本身被修改掉了成为新的值 Ref:void swap(int& a, int& b){ a=a^b;b=a^b;a=a^b;}
A = A ^ B;// 执行变量互换 B = B ^ A; A = A ^ B; 这个是怎么做到互换...
按位取反啊,比如 a=10011,b=11100,a= a^b = 01111,b= b^a=10011 , a= a^b=11100,完成了,如果a有7位,b只有4位,那么在b前面加000再执行按位取反。
程序里“a=a^b”是什么意思?尤其里边的“^”是什么意思?
a的b次方。
java中的^表示啥
其他位不变,则可以将该数与00000110进行按位异或运算。 10100001^00000110 = 10100111 (2) 实现两个值的交换,而不必使用临时变量。 例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:a = a^b; //a=10100111b = b^a; //b=10100001a = a^b; //a=00000110...
java中两个数字a^b是什么意思?
java 中“^ ”是按位异或,“<<”是带符号左移动 例子:00101101^0100111=0110010 -16<<2=-16*(2*2)=-64 128<<1=128*(2)=256
c语言 a^=b^=a^=b是什么意思?
^是按位异或,两者真值相同则假,真值相反则真。例如a^=b是a=a^b,若a,b值均为真或者均为假,则a为假,反之,则为真。a^=b^=a^=b这是赋值的连续运算,从最右边往左算。