交换a,b两数,且不用开辟额外空间(前提是能保证a和b本来就不等)
a=a^b;
b=a^b;
a=a^b;
^为异或符号,两数异或,相同为0,不同为1,0和任何数相异或都为那个数本身
a | b | a^b= |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
0 | 0 | 1 |
第一句,a=a^b
第二句,b=a^b=a^b^b=a^0=a
第三句,a=a^b^a=0^b=b
交换a,b两数,且不用开辟额外空间(前提是能保证a和b本来就不等)
a=a^b;
b=a^b;
a=a^b;
^为异或符号,两数异或,相同为0,不同为1,0和任何数相异或都为那个数本身
a | b | a^b= |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
0 | 0 | 1 |
第一句,a=a^b
第二句,b=a^b=a^b^b=a^0=a
第三句,a=a^b^a=0^b=b