<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                【31.1 “或”運算。】 “或”運算也是以位為單位進行運算的。位是指二進制中的某一位,位只能是0或者1。兩個數的“或”運算就是轉換成二進制后每一位的“或”運算。 “或”運算的符號是“|”。運算規律是:兩個位的“或”運算,如果兩個位都是0,那么運算結果才是0,否則只要其中有一位是1,那么運算結果必定是1。比如: 0|0等于0。 0|1等于1。 1|0等于1。 1|1等于1。 現在舉一個完整的例子來分析“|”運算的規律。有兩個unsigned char類型的十進制數分別是12和9,求12|9的結果是多少?分析步驟如下: 第一步:先把參與運算的兩個數以二進制的格式展開。十進制轉二進制的方法請參考前面第14,15,16節的內容。 十進制12的二進制格式是:00001100。 十進制9的二進制格式是: 00001001。 第二步:二進制數右對齊,按上下每一位進行“或”運算。 十進制的12 -> 00001100 十進制的9 -> |00001001 “或”運算結果是 -> 00001101 第三步:把二進制的00001101轉換成十六進制是:0x0D。轉換成十進制是13。所以12|9的結果是13。 上一節講的“與”運算最常見的用途是可以指定一個變量的某位清0,而本節的“或”運算剛好相反,“或”運算最常見的用途是可以指定一個變量的某位置1,其它位保持不變。比如一個unsigned char類型的變量b,數據長度一共是8位,從右往左: 想讓第0位置1,其它位保持不變,只需跟十六進制的0x01相“或”:b=b|0x01。 想讓第1位置1,其它位保持不變,只需跟十六進制的0x02相“或”:b=b|0x02。 想讓第2位置1,其它位保持不變,只需跟十六進制的0x04相“或”:b=b|0x04。 想讓第3位置1,其它位保持不變,只需跟十六進制的0x08相“或”:b=b|0x08。 想讓第4位置1,其它位保持不變,只需跟十六進制的0x10相“或”:b=b|0x10。 想讓第5位置1,其它位保持不變,只需跟十六進制的0x20相“或”:b=b|0x20。 想讓第6位置1,其它位保持不變,只需跟十六進制的0x40相“或”:b=b|0x40。 想讓第7位置1,其它位保持不變,只需跟十六進制的0x80相“或”:b=b|0x80。 根據上述規律,假設b原來等于十進制的84(十六進制是0x54,二進制是01010100),要想把此數據的第0位置1,只需b=b|0x01。最終b的運算結果是十進制是85(十六進制是0x55,二進制是01010101)。把它們展開成二進制格式的運算過程如下: 十進制的84 -> 01010100 十六進制的0x01 -> |00000001 “或”運算結果是 -> 01010101 【31.2 或運算的“自或簡寫”。】 當被或數是“保存變量”時,存在“自或簡寫”。 “保存變量”=“保存變量” | “某數” ; 上述自或簡寫如下: “保存變量” | =“某數” ; 比如: unsigned char c=9; c|=5; //相當于c=c|5; 最后的計算結果c是13。 【31.3 例程練習和分析。】 現在編寫一個程序來驗證剛才講到的“或”運算: 程序代碼如下: /\*---C語言學習區域的開始。-----------------------------------------------\*/ void main() //主函數 { unsigned char a; unsigned char b=84; //十六進制是0x54,二進制是01010100。 unsigned char c=9; a=12|9; b=b|0x01; c|=5; //相當于c=c|5; 最后的計算結果c是13。 View(a); //把第1個數a發送到電腦端的串口助手軟件上觀察。 View(b); //把第2個數b發送到電腦端的串口助手軟件上觀察。 View(c); //把第3個數c發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:13 十六進制:D 二進制:1101 第2個數 十進制:85 十六進制:55 二進制:1010101 第3個數 十進制:13 十六進制:D 二進制:1101 分析: 通過實驗結果,發現在單片機上的計算結果和我們的分析是一致的。 【31.4 如何在單片機上練習本章節C語言程序?】 直接復制前面章節中第十一節的模板程序,練習代碼時只需要更改“C語言學習區域”的代碼就可以了,其它部分的代碼不要動。編譯后,把程序下載進帶串口的51學習板,通過電腦端的串口助手軟件就可以觀察到不同的變量數值,詳細方法請看第十一節內容。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看