python 利用按位異或運算子交換兩變數的數值

2021-08-21 12:55:11 字數 491 閱讀 1013

#定義兩個變數 num1 num2

num1 = 20

num2 = 10

#把num1與num2的異或運算重新值賦給num1

num1 = num1 ^ num2

#再把新賦過值的num1與num2進行異或運算,並把值賦給num2即原來num1的值20

num2 = num1 ^ num2

#同樣,用num1再與num2做異或運算並賦值給num1,得到的num1的值即為最初num2的值10

num1 = num1 ^ num2

print(num1,num2)

按位異或運算即計算機會先把十進位制數轉化為二進位制數,並對二進位制數進行從右到左用從1開始編數,然後比較兩個二進位制數值相同位置的數,如果相同結果為0,不同時結果為1

如:         1010

則結果為   0101

總結:這種通過按位異或運算來交換兩變數的值,可以減少變數的定義,同時減少計算機對**的解析時間。

按位異或運算子

參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即 0 0 0,1 0 1,0 1 1,1 1 0 例如 10100001 00010001 10110000 0 0 0,0 1 1 0異或任何數 任何數 1 0 1,1 1 0 1異或任何數 任何數取反 任何數異或自己 把自己置0 1 ...

按位異或運算子

2 實現兩個值的交換,而不必使用臨時變數。例如交換兩個整數a 10100001,b 00000110的值,可通過下列語句實現 a a b a 10100111 b b a b 10100001 a a b a 00000110 3 在組合語言中經常用於將變數置零 xor a,a 1 static i...

深度理解按位異或運算子

參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即 0 0 0,1 0 1,0 1 1,1 1 0 例如 10100001 00010001 10110000 0 0 0,0 1 1 0異或任何數 任何數 1 0 1,1 1 0 1異或任何數 任何數取反 任何數異或自己 把自己置0 1 ...