二進制快速運算?二進制數的邏輯運算有四種:“與”運算AND、“或”運算OR、 “非”運算NOT、“異或”運算XOR,我來為大家科普一下關于二進制快速運算?下面希望有你要的答案,我們一起來看看吧!
二進制快速運算
二進制數的邏輯運算有四種:“與”運算AND、“或”運算OR、 “非”運算NOT、“異或”運算XOR。
其中“或”運算又稱邏輯加法、“與”運算又稱邏輯乘法、“非”運算又稱邏輯否定,“異或”運算又稱邏輯半加法。
二進制數1和0在邏輯上可以代表“真”與“假”、“是”與“否”、“有”與“無”。
二進制數的邏輯運算算術運算是截然不同的,二進制數的邏輯運算是位對位的運算,本位運算結果不會對其他位産生任何影響,即不會出現算術運算中的進位或者借位。
1、“或”運算OR(邏輯加法)
通常用符号“ ”或“∨”或“|”來表示。
運算規則如下:0 0=0 ,0 1=1 ,1 0=1 ,1 1=1
0∨0=0,0∨1=1,1∨0=1,1∨1=1
0|0=0, 0|1=1, 1|0=1, 1|1=1
表示兩者隻要有一個1,其邏輯或的結果就為1。
例如:求51 | 5
深入擴展用法:
(1)與0相“或”可保留原值,與1相“或”可将對應位置1。
例如:将X=10100000的高四位不變,低四位置1的操作為 x| 00001111 = 10101111。
例如:将x的第1、2位置1的操作為x | 00000110B
(2)可以給二進制特定位上的數無條件賦值,比如把二進制最末位強行變成1,或者把二進制最末位變成0。
例如:把A=4(二進制為100)末位變為1的操作為 A|1= (100|001=101);
把A=7(二進制為111)末位變為0的操作為 A|1-1= (111|001-1=110)。
(3)可以判斷二進制數的奇偶。二進制的最末為0,表示該數為偶數,最末尾為1表示該數為奇數。例如:如果x|0=0,則x為偶數。
2、“與”運算AND(邏輯乘法)通常用符号“×”或“∧”或“·”或“&”來表示。
運算規則如下:
0×0=0,0×1=0,1×0=0,1×1=1
0∧0=0,0∧1=0,1∧0=0,1∧1=1
0·0=0,0·1=0,1·0=0,1·1=1
0&0=0 ,0&1=0 ,1&0=0 ,1&1=1
表示隻有當兩者同時為1時,其邏輯與的結果才能等于1。
例如:求51 & 5
深入擴展用法:
(1)與0相“與”可清零。例如:對x的第0、3位清零的操作為 x & 11110110B。
(2)與1相“與”可保留原值,例如:取x中的後兩位的操作為 x & 00000011B。
(3)可以判斷二進制數的奇偶。如果x&1=0,則x為偶數。
(4)可以清除掉二進制整數最右邊的1,操作為 x & (x – 1)
3、“非”運算NOT(邏輯否定)
通常用符号“~”、“!”或者上方加一橫線來表示。
運算規則如下:
例如:求~51
~ 00110011=11001100
4、“異或”運算XOR(邏輯半加運算)通常用符号“^”、“⊕”來表示,
運算規則為:0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0
0^0=0, 0^1=1, 1^0=1, 1^1=0表示隻有當兩者不相同時,結果才為1,兩者相同時結果為0。
例如:求51 ^ 5
深入擴展用法:
(1)與0相”異或“可保留原值,與1相”異或“可将對應位置取反。例如:對x的3、7位取反的操作為 x^ 10001000B
(2)異或運算的逆運算是他本身,也就是說一個數經過兩次異或後還是它本身。
(3)一個數和0異或是它的本身,和自身異或為0。即x^0=x ,x^x=0 。
(4)異或運算可以用于交換兩個整數,不使用中間變量。
交換方法為:
A = A ^ B
B = A ^ B
A = A ^ B
證明:
已知 a=51,b=5
那麼:
a=a^b=51^5
b=a^b=(51^5)^5=51^5^5=51^0=51
a=a^b=(51^5)^51=51^51^5=0^5=5
得到:a=5,b=51