位元XOR運算(^) | 86Duino
文章推薦指數: 80 %
int c = a | b; // result: 00000000000000000000000001111101, or 125 in decimal. 位元運算XOR (^). 這是一個特別的運算子,在C++ 中 ...
86Duino
購買
3D印表機
印匠ENJOY
86DUINOENJOYAUTO
列印線材產品資訊
下載
86servo
多軸控制器
3軸力感測器
86Duino開發板
Roboard
Products
RoBoard
RoBoardModule
CNCEquipments
LCD&Display
ServoMotor
Download
User’sManual
OSInstallation
RoBoIOLibrary
RoBoIOWrapper
RoBoIOApplication
BoardSupportPackage
BIOS
OtherInformation
Code&Video
軟體下載
86Duino整合開發環境
STEM教育軟體
系統工具
學習
新手上路
電子書
自造遊樂園
黑客天地
參考文獻
程式語法參考
函式庫參考
硬體功能說明
位元AND運算(&),位元OR運算(|),位元XOR運算(^)
Postedbyroboard
On11/05/2013
2Comments
位元運算子是用來計算變數的位元,它們可以幫忙解決各種常見的編程問題;更多有關位元運算的素材與教學可以參考這裡。
描述和語法
下面是所有的運算子的語法還有說明,其他的細節可以在參考教學中找到。
位元運算AND(&)
C++中位元運算AND以單一符號&表示,用在兩個整數之間,位元運算AND運算子會運算每一個位元位置上的值(0/1),依據固定的規則:若兩者皆為1則輸出是1,其餘狀況輸出皆為0;請參考以下範例:
0011 運算元1
0101 運算元2
———-
0001 (運算元1&運算元2) – 回傳結果
在86duino上int型別將是一個32位元的數值,所以用在兩個int型別的變數上會產生32個AND運算去分別處理每個位元,像下面的程式碼範例一樣:
inta=92;//inbinary:00000000000000000000000001011100
intb=101;//inbinary:00000000000000000000000001100101
intc=a&b;//result:00000000000000000000000001000100,or68indecimal.
每一個a與b的位元將會被位元運算AND所處理,而32個結果將會以二進制儲存在c裡面,結果會是二進制表示01000100,以十進制表示則是68。
最常使用的AND運算是從一個整數型別選定一個特別的位元(或多個),通常稱為masking(mask表示哪一些是想留存的值,或哪些是不想留存的)。
位元運算OR(|)
C++中位元運算OR以豎線符號|表示,像是&運算子一樣,位置寫在兩個整數之間,但是運算是不同的,若兩者中有一個為1則輸出是1,只有兩者皆為0時輸出為0;請參考以下範例:
0011 運算元1
0101 運算元2
———-
0111(運算元1|運算元2) – 回傳結果
以下範例是位元運算OR的C++程式碼:
inta=92;//inbinary:00000000000000000000000001011100
intb=101;//inbinary:00000000000000000000000001100101
intc=a|b;//result:00000000000000000000000001111101,or125indecimal.
位元運算XOR(^)
這是一個特別的運算子,在C++中稱為EXCLUSIVEOR,就是位元運算中的XOR,位元運算XOR以插入符號^表示,其運算方式跟OR運算子非常相似,差別在於XOR是運算的兩者中,其中一個位元為1而另一個為0時輸出才是1:
0011 運算元1
0101 運算元2
———-
0110 (運算元^運算2) – 回傳結果
從另一個角度看XOR,若結果是1代表輸入的兩個位元不同,結果是0代表輸入的兩個位元相同。
以下是簡單的程式碼範例:
intx=12;//binary:1100
inty=10;//binary:1010
intz=x^y;//binary:0110,ordecimal6
^運算子常用來整數bit的切換(0=>1或是1=>0);在XOR的運算中,如果mask的bit是1則會顛倒;如果是0則不會顛倒,保持原值。
Seealso
-&&(BooleanAND)
-||(BooleanOR)
語法參考主頁面
本頁由熱血青年LBU譯自英文版。
Thetextofthe86DuinoreferenceisamodificationoftheArduinoreference,andislicensedunderaCreativeCommonsAttribution-ShareAlike3.0License.Codesamplesinthereferencearereleasedintothepublicdomain.
LanguageEnglish繁體中文简体中文日本語
其他操作
註冊 登入
訂閱網站內容RSS資訊提供
訂閱網站留言RSS資訊提供
WordPress台灣繁體中文
EMAIL:[email protected] | TEL:+886222980770 | FAX:+886222991883 ADD:No.15,Wugong5thRd.,NewTaipeiIndustrialPark,NewTaipeiCity248020,Taiwan
86Duino Copyright © 2022DMPElectronicsINC.AllRightsReserved.
延伸文章資訊
- 1位元運算子& AND, | OR, ^ XOR, ~ NOT @ 程式手扎 - 隨意窩
邏輯運算子電路中最基本的邏輯運算子如下所列,可說是工程人員都耳熟能詳地,假設有A 和B 兩個bit, ... 201303291406位元運算子& AND, | OR, ^ XOR, ~ NOT.
- 2位元運算
這叫做bitwise operation,像是逐位的or 就稱為bitwise or、逐位xor 稱為bitwise xor 等等。 以下是C++ 的位元運算子列表:. 運算子, 說明 ...
- 3Xor 運算子
用來在兩個運算式上做邏輯互斥。 語法. [result =] expression1 Xor expression2. Xor 運算子的語法具有以下幾個單元: ...
- 4Xor 運算子- Visual Basic
result = expression1 Xor expression2. 組件. result 必要。 任何 Boolean 或數值變數。 針對布林值比較, result 是兩個值的邏輯排除(...
- 5邏輯運算、位元運算
接下來看看位元運算子(Bitwise operator),數位設計上有AND、OR、NOT、XOR 與補數等運算,在C 中提供這些運算的就是位元運算子,它們的對應分別是AND ( & )、OR(...