1. 程式人生 > >兩個二進位制數異或的結果

兩個二進位制數異或的結果

題目:兩個二進位制數異或結果是多少

分析:

       二進位制數可以進行兩種運算:算術運算和邏輯運算。二進位制數的算術運算包括:加、減、乘、除四則運算。二進位制數的邏輯運算包括邏輯加法(“或”運算)、邏輯乘法(“與”運算)、邏輯否定(“非”運算)和邏輯“異或”運算。

(1)邏輯“或”運算


  又稱為邏輯加,可用符號“+”或“∨”來表示。邏輯“或”運算的規則如下:


0+0=0或0∨0=0
0+1=1或0∨1=1
1+0=1或1∨0=1
1+1=1或1∨1=1

 
  可見,兩個相“或”的邏輯變數中,只要有一個為1,“或”運算的結果就為1。僅當兩個變數都為0時,或運算的結果才為0。計算時,要特別注意和算術運算的加法加以區別。


(2)邏輯“與”運算


  又稱為邏輯乘,常用符號“×”或“· ”或“∧”表示。“與”運算遵循如下運算規則:


0×1=0或0·1=0或0∧1=0
1×0=0或1·0=0或1∧0=0
1×1=1或1·1=1或1∧1=1


  可見,兩個相“與”的邏輯變數中,只要有一個為0,“與”運算的結果就為0。僅當兩個變數都為1時,“與”運算的結果才為1。


(3)邏輯“非”運算


  又稱為邏輯否定,實際上就是將原邏輯變數的狀態求反,其運算規則如下:



  可見,在變數的上方加一橫線表示“非”。邏輯變數為0時,“非”運算的結果為1。邏輯變數為1時,“非”運算的結果為0。

(4)邏輯“異或”運算
“異或”運算,常用符號“

”或“”來表示,其運算規則為:


00=0 或 00=0
01=1 或 01=1
10=1 或 10=1
11=0 或 11=0

可見:兩個相“異或”的邏輯運算變數取值相同時,“異或”的結果為0。取值相異時,“異或”的結果為1
  以上僅就邏輯變數只有一位的情況得到了邏輯“與”、“或”、“非”、“異或”運算的運算規則。當邏輯變數為多位時,可在兩個邏輯變數對應位之間按上述規則進行運算。特別注意,所有的邏輯運算都是按位進行的,位與位之間沒有任何聯絡,即不存在算術運算過程中的進位或借位關係。

定義  異或(xor)是一個數學運算子。它應用於邏輯運算。異或符號為“^”。 其運演算法則為a異或b=a'b或ab'(a'為非a)。

  真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。簡單點說就是異或的兩個值'相同為假,不同為真'。

異或運演算法則

  1. a ^ b = b ^ a

  2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;

  3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.

  4. a ^ b ^ a = b.

=================================================================================

問題答案:兩個二進位制數異或結果 是 這兩個二進位制數差的絕對值,即表達為如下:

                                                  a^b = |a-b| (按位相減取絕對值,再按位累加)

解答過程:

      二進位制數a與b異或,即a和b兩個數按位進行,如果對應位相同,即為0(這個時候相當於對應位算術相減),如果不相同,即為1(這個時候相當於對應位算術相減的絕對值)。由於二進位制每個位只有兩種狀態,要麼是0,要麼是1,則按位異或操作可以表達為按位相減取絕對值,再按位累加。