在其它 程式語言,比如java 和 python 中,位操作不常用到,畢竟我們是 按 變數的 實際型別,比如 整型,字元型,浮點型 來 理解 變數的。一般不會 涉及到 變數 或 一個地址 具體每一位元的 內容。
但是在底層開發中,當需要 用 程式操縱和控制晶片時,因為晶片的 資料手冊 的 暫存器定義 都是 精確到 每一個 位元的。所以 做作業系統 晶片移植和支援,以及晶片驅動 程式開發,對變數的 每一個位元的內容進行 精確 設定 和讀取,就非常重要。
c語言位操作有 移位運算子 >> <<,可以將一個變數 右移 或 左移 n個位元。
按位與 運算子,&,只有兩個變數的對應位都是1 結果才是1
按位或 運算子| 只要兩個運算位,其中有一個為1 結果 就是1
按位異或 運算子 ^ 只有兩個 運算位 不同,結果是1 ,如果相同,結果是0
按位 求反 運算子,~ 原來 是1 的 變為0原來是0的變為1
有了以上運算子 為工具,就可以 隨意 讀取和 設定一個變數中特定的位元位了。
位段的 作用,和位操作類似,可以定義 一個位段,對特定的 連續幾個位元進行操作,突破了 位元組是8位元的 限制,使用起來比較方便。
最新評論