回覆列表
-
1 # 下雨的熱天
-
2 # 使用者6417914773854
1、運算規則不同: 異或如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同。異其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0♁0=0,1♁0=1,0♁1=1,1♁1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。 2、功能不同: 按位或其功能是參與運算的兩數各對應的二進位相或。異或結果為0。或只要對應的二個二進位有一個為1時,結果位就為1。當參與運算的是負數時,參與兩個數均以補碼出現。 3、運算子不同:按位或在C語言中用a | b表示。按位異或在C語言中用a ^ b來表示。
c++中專門的邏輯異或運算。呆要先取得兩個邏輯值,然後再將這兩個表示邏輯值的量進行二進位制異或運算就可以了。相應的運算子號是“^”。例如,平面上一個點P,位於座標軸上但不在原點,它的座標(x,y)必定是:if(x==0^y==0)printf("點P在座標軸上但不在原點!\n"); --用邏輯異或表示