位元XOR運算(^) | 86Duino

文章推薦指數: 80 %
投票人數:10人

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.



請為這篇文章評分?