<video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

      <sub id="fj17p"></sub>

        <thead id="fj17p"><meter id="fj17p"></meter></thead>
        <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

          <th id="fj17p"></th>
          <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
          <track id="fj17p"><address id="fj17p"></address></track>

          <nobr id="fj17p"></nobr>

          <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

              (玩電子) 電子技術學習與研究
              當前位置:單片機教程網 >> 基礎教程 >> 瀏覽文章

              第七課 運算符和表達式(關系運算符)

              作者:佚名   來源:本站原創   點擊數:x  更新時間:2007年07月17日   【字體:

              關系運算符,同樣我們也并不陌生。單片機C語言中有六種關系運算符,這些東西同樣是在我們小時候學算術時就已經學習過了的:

              >           大于

              <           小于

              >=       大于等于

              <=       小于等于

              ==       等于

              !=       等于

              或者你是個非 C語言 程序員,那么對前四個一定是再熟悉不過的了。而“==”在 VB 或 PASCAL 等中是用“=”,“!=”則是用“not  ”。

              小學時的數學課就教授過運算符是有優先級別的,計算機的語言也不過是人類語言的一種擴展,這里的運算符同樣有著優先級別。前四個具有相同的優先級,后兩個也具有相同的優先級,但是前四個的優先級要高于后2個的。

              當兩個表達式用關系運算符連接起來時,這個時候就是關系表達式。關系表達式通常是用來判別某個條件是否滿足。要注意的是用關系運算符的運算結果只有 0 和 1 兩種,也就是邏輯的真與假,當指定的條件滿足時結果為 1,不滿足時結果為 0。

              表達式 1    關系運算符    表達式 2 如:I<J,I==J,(I=4)>(J=3),J+I>J

              借助我們在上一課做好的電路和學習了的相關操作。我們來做一個關系運算符相關的實例程序。為了增加學習的趣味性和生動性,不妨我們來假設在做一個會做算術的機器人,當然真正會思考對話的機器,我想我是做不出來的了,這里的程序只是用來學習關系運算符的基本應用。

              #include  <AT89X51.H>

              #include  <stdio.h>

              void  main(void)

              {

              int  x,y;

              SCON  =  0x50;  //串行口方式 1,允許接收 TMOD  =  0x20;  //定時器 1 定時方式 2

              TH1  =  0xE8;  //11.0592MHz  1200 波特率 TL1  =  0xE8;

              TI  =  1;

              TR1  =  1;  //啟動定時器

              while(1)

              {

              printf("您好!我叫 Robot!我是一個會做算術的機器人!\n");  //顯示

              printf("請您輸入兩個 int,X  和  Y\n");  //顯示


              scanf("%d%d",&x,&y);       //輸入

              if  (x  <  y)

              printf("X<Y\n");  //當 X 小于 Y 時

              else       //當 X 不小于 Y 時再作判斷

              {

              if  (x  ==  y)

              printf("X=Y\n");  //當 X 等于 Y 時

              else

              printf("X>Y\n");  //當 X 大于 Y 時

              }

              }

              }

              要注意的是,在連接 PC 串行口調試時。發送數字時,發送完一個數字后還要發送一個回

              車符,以使 scanf 函數確認有數據輸入。

              邏輯運算符 關系運算符所能反映的是兩個表達式之間的大小等于關系,那邏輯運算符則是用于求條

              件式的邏輯值,用邏輯運算符將關系表達式或邏輯量連接起來就是邏輯表達式了。也許你會 對為什么“邏輯運算符將關系表達式連接起來就是邏輯表達式了”這一個描述有疑惑的地方。 其實之前說過“要注意的是用關系運算符的運算結果只有 0 和 1 兩種,也就是邏輯的真與假”, 換句話說也就是邏輯量,而邏輯運算符就用于對邏輯量運算的表達。邏輯表達式的一般形式 為:

              邏輯與:條件式 1  &&  條件式 2 邏輯或:條件式 1  ||  條件式 2 邏輯非:  !  條件式 2


              圖 7-1    演示結果

              邏輯與,說白了就是當條件式 1“與”條件式 2 都為真時結果為真(非 0 值),不然為 假(0 值)。也就是說運算會先對條件式 1 進行判斷,如果為真(非 0 值),則繼續對條件式

              2 進行判斷,當結果為真時,邏輯運算的結果為真(值為 1),如果結果不為真時,邏輯運算 的結果為假(0 值)。如果在判斷條件式 1 時就不為真的話,就不用再判斷條件式 2 了,而 直接給出運算結果為假。

              邏輯或,是指只要二個運算條件中有一個為真時,運算結果就為真,只有當條件式都不 為真時,邏輯運算結果才為假。

              邏輯非則是把邏輯運算結果值取反,也就是說如果兩個條件式的運算值為真,進行邏輯 非運算后則結果變為假,條件式運算值為假時最后邏輯結果為真。

              同樣邏輯運算符也有優先級別,!(邏輯非)→&&(邏輯與)→||(邏輯或),邏輯非的 優先值最高。

              如有    !True  ||  False  &&  True

              按邏輯運算的優先級別來分析則得到(True 代表真,False 代表假)

              !True  ||

              False

              &&

              True

               

              False  ||

              False

              &&

              True

              //!Ture 先運算得 False

              False  ||

              False

                 

              //False  &&  True 運算得 False

              False

                   

              //最終 False  ||  False 得 False

              下面我們來用程序語言去有表達,如下:

              #include  <AT89X51.H>

              #include  <stdio.h>

              void  main(void)

              {

              unsigned  char  True  =  1;  //定義

              unsigned  char  False  =  0;

              SCON  =  0x50;  //串行口方式 1,允許接收 TMOD  =  0x20;  //定時器 1 定時方式 2

              TH1  =  0xE8;  //11.0592MHz  1200 波特率 TL1  =  0xE8;

              TI  =  1;

              TR1  =  1;  //啟動定時器

              if  (!True  ||  False  &&  True)

              printf("True\n");  //當結果為真時


              else

              }

              printf("False\n");  //結果為假時

              大家能使用以往學習的方法用 keil 或燒到片子上用串行口調試。能更改“!True || False

              &&  True”這個條件式,以實驗不一樣算法組合來掌握邏輯運算符的使用方法。

              發表評論】【告訴好友】【收藏此文】【關閉窗口

              文章評論

              幸运飞艇群二维码2018

              <video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

                  <sub id="fj17p"></sub>

                    <thead id="fj17p"><meter id="fj17p"></meter></thead>
                    <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

                      <th id="fj17p"></th>
                      <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
                      <track id="fj17p"><address id="fj17p"></address></track>

                      <nobr id="fj17p"></nobr>

                      <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

                          <video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

                              <sub id="fj17p"></sub>

                                <thead id="fj17p"><meter id="fj17p"></meter></thead>
                                <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

                                  <th id="fj17p"></th>
                                  <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
                                  <track id="fj17p"><address id="fj17p"></address></track>

                                  <nobr id="fj17p"></nobr>

                                  <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

                                      趣赢娱乐安卓 wnba比分文字直播 江西快三号码走势图 清纯校花图片 连衣裙 广西快乐双彩最新开奖查询 太原小姐联系方式 工商管理博士就业前景 平码三中三资料区 2018三肖中特 彩乐乐网址 25选7开奖结果 网球比分上面的数字 内蒙古十一选五每天开奖结果 黑龙江22选5五行走势图 一本道潮喷qvod bcc比特币现金地址