<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之旅 廣告
                【15.1 十六進制是二進制的縮寫。】 在我的印象中,C51編譯器好像并不支持二進制的書寫格式,即使它能支持二進制的書寫格式,二進制的書寫還是有個弊端,就是數字太多太長了,寫起來非常費勁不方便,怎么辦?解決辦法就是用十六進制。十六進制是二進制的縮寫,之所以稱它為二進制的縮寫,是因為它們的轉換關系非常簡單直觀,不需要借助計算器即可相互轉換。 【15.2 何謂十六進制?】 何謂十六進制?欲搞清楚這個問題,還得先從十進制說起。所謂十進制,就是用一位字符可以表示從0到9這十個數字。所謂二進制,就是用一位字符可以表示從0到1這二個數字。所謂十六進制,當然也就是用一位字符可以表示從0到15這十六個數字。但是十六進制馬上就會面臨一個問題,十六進制的10到15這6個數其實是有兩位字符組成的,并不是一位呀?于是C語言用這些字符A,B,C,D,E,F分別替代10,11,12,13,14,15這6個數,10前面的0到9還是跟十進制的字符一致。A,B,C,D,E,F也可以用小寫a,b,c,d,e,f來替代,在數值上不區分大小寫,比如十六進制的a與A都是表示十進制的10。 【15.3 二進制與十六進制是如何轉換的?】 前面提到了十六進制是二進制的縮寫,它們的轉換關系非常簡單直觀,每1位十六進制的字符,對應4位二進制的字符。關系如下: 十進制 二進制 十六進制 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 二進制轉換成十六進制的時候,如果不是4位的倍數,則最左邊高位默認補上0湊合成4位的倍數。比如一個二進制的數101001,可以在左邊補上2個0變成00101001,然后把每4位字符轉成1個十六進制的字符。左邊高4位0010對應十六進制的2,右邊低4位1001對應十六進制的9,所以二進制的101001合起來最終轉換成十六進制的數是29(實際上正確的寫法是0x29,為什么?請繼續往下看。)。 【15.4 十六進制數的標準書寫格式是什么樣子的?】 十六進制的標準書寫格式是什么樣子的?實際上,十六進制29并不能直接寫成29,否則就跟十進制的寫法混淆了。為了把十六進制和十進制的書寫格式進行區分,C語言規定凡是十六進制必須加一個數字0和一個字母x作為前綴,也就是十六進制必須以0x作為前綴,所以剛才的十六進制29就應該寫成0x29,否則,如果直接寫29編譯器會認為是十進制的29,而十進制的29轉換成十六進制是0x1D(十進制與十六進制之間如何轉換在后面章節會講到),0x29與0x1D可見差別很大的,凡是不加前綴的都會被默認為十進制。 多說一句,在C語言程序里,對于同樣一個數值,既可以用十六進制,也可以用十進制,比如:d=0x2C與d=44的含義是一樣的,因為十六進制的0x2C和十進制的44最終都會被C51編譯器翻譯成二進制00101100,是表示同樣大小的數值。 【15.5 例程練習和分析。】 現在我們編寫一個程序來觀察十六進制和二進制的關系。 程序代碼如下: /\*---C語言學習區域的開始。-----------------------------------------------\*/ void main() //主函數 { unsigned char a; //定義一個變量a,并且分配了1個字節的RAM空間。 unsigned char b; //定義一個變量b,并且分配了1個字節的RAM空間。 unsigned char c; //定義一個變量c,并且分配了1個字節的RAM空間。 unsigned char d; //定義一個變量d,并且分配了1個字節的RAM空間。 a=0x06; //十六進制前記得加0x前綴,超過9部分的字母不分大小寫。 b=0x0A; //十六進制前記得加0x前綴,超過9部分的字母不分大小寫。 c=0x0e; //十六進制前記得加0x前綴,超過9部分的字母不分大小寫。 d=0x2C; //十六進制前記得加0x前綴,超過9部分的字母不分大小寫。 View(a); //把第1個數a發送到電腦端的串口助手軟件上觀察。 View(b); //把第2個數b發送到電腦端的串口助手軟件上觀察。 View(c); //把第3個數c發送到電腦端的串口助手軟件上觀察。 View(d); //把第4個數d發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:6 十六進制:6 二進制:110 第2個數 十進制:10 十六進制:A 二進制:1010 第3個數 十進制:14 十六進制:E 二進制:1110 第4個數 十進制:44 十六進制:2C 二進制:101100 分析: 通過實驗結果,我們知道二進制與十六進制的轉換關系確實非常清晰簡單,所以十六進制也可以看作是二進制的縮寫。 【15.6 如何在單片機上練習本章節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>

                              哎呀哎呀视频在线观看