位元NOT運算(~)

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

C++ 中位元補數運算(NOT) 的符號以~ 表示,~ 不像& 和|,而是對運算子右邊的單一運算元進行運算,位元補數運算會針對每一個位元進行二進制的補數 ... 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教育軟體 系統工具 學習 新手上路 電子書 自造遊樂園 黑客天地 參考文獻 程式語法參考 函式庫參考 硬體功能說明 位元NOT運算(~) Postedbyroboard On11/06/2013 0Comment C++中位元補數運算(NOT)的符號以~表示,~不像&和|,而是對運算子右邊的單一運算元進行運算,位元補數運算會針對每一個位元進行二進制的補數運算,會將0轉換成1,1轉換成0,請參考以下範例:         0  1    運算元1         ———-         1  0    ~運算元1 inta=103;//binary:00000000000000000000000001100111 intb=~a;//binary:11111111111111111111111110011000=-104 你可能會驚訝於103經過補數運算的結果居然會是個負數-104,這是因為int變數中最高的位元會被當作符號位元,當這個位元為1時表示該數為負數,這種編碼方式又被稱作二補數,詳細資料可以參考維基百科的二補數。

有意思的是,任一個整數x,其~x的結果就等於-x-1。

這麼看來,帶有正負符號的整數有時會導致非預期的意外。

語法參考主頁面 本頁由熱血青年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.



請為這篇文章評分?