機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
第七課 運(yùn)算符和表達(dá)式(2)
第七課 運(yùn)算符和表達(dá)式(2)
 更新時(shí)間:2008-7-27 16:13:49  點(diǎn)擊數(shù):2
【字體: 字體顏色

關(guān)系運(yùn)算符
  對(duì)于關(guān)系運(yùn)算符,同樣我們也并不陌生。C中有六種關(guān)系運(yùn)算符,這些家伙同樣是在小時(shí)候?qū)W算術(shù)時(shí)學(xué)習(xí)過的:
  > 大于
 。 小于
 。荆 大于等于
  <= 小于等于
 。剑 等于
  。 等于
  或者你是個(gè)非C程序員,那么對(duì)前四個(gè)一定是再熟悉不過的了。而"=="在VB或PASCAL等中是用"=","!="則是用"not "。由于工作關(guān)系我自己要使用好幾種的程序語(yǔ)言,所以有時(shí)也會(huì)頭暈搞錯(cuò)。老了咯 :P
小學(xué)時(shí)的數(shù)學(xué)課就教授過運(yùn)算符是有優(yōu)先級(jí)別的,計(jì)算機(jī)的語(yǔ)言也不過是人類語(yǔ)言的一種擴(kuò)展,這里的運(yùn)算符同樣有著優(yōu)先級(jí)別。前四個(gè)具有相同的優(yōu)先級(jí),后兩個(gè)也具有相同的優(yōu)先級(jí),但是前四個(gè)的優(yōu)先級(jí)要高于后2個(gè)的。
當(dāng)兩個(gè)表達(dá)式用關(guān)系運(yùn)算符連接起來時(shí),這時(shí)就是關(guān)系表達(dá)式。關(guān)系表達(dá)式通常是用來判別某個(gè)條件是否滿足。要注意的是用關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有0和1兩種,也就是邏輯的真與假,當(dāng)指定的條件滿足時(shí)結(jié)果為1,不滿足時(shí)結(jié)果為0。
  表達(dá)式1 關(guān)系運(yùn)算符 表達(dá)式2
  如:I<J,I==J,(I=4)>(J=3),J+I>J
  借助我們?cè)谏弦徽n做好的電路和學(xué)習(xí)了的相關(guān)操作。我們來做一個(gè)關(guān)系運(yùn)算符相關(guān)的實(shí)例程序。為了增加學(xué)習(xí)的趣味性和生動(dòng)性,不妨我們來假設(shè)在做一個(gè)會(huì)做算術(shù)的機(jī)器人,當(dāng)然真正會(huì)思考對(duì)話的機(jī)器,我想我是做不出來的了,這里的程序只是用來學(xué)習(xí)關(guān)系運(yùn)算符的基本應(yīng)用。
#include
#include

void main(void)
{
int x,y;

SCON = 0x50; //串口方式1,允許接收
TMOD = 0x20; //定時(shí)器1定時(shí)方式2
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //啟動(dòng)定時(shí)器

while(1)
{
printf("您好!我叫Robot!我是一個(gè)會(huì)做算術(shù)的機(jī)器人!\n"); //顯示
printf("請(qǐng)您輸入兩個(gè)int,X 和 Y\n"); //顯示
scanf("%d%d",&x,&y); //輸入
if (x < y)
printf("Xelse //當(dāng)X不小于Y時(shí)再作判斷
{
if (x == y)
printf("X=Y\n"); //當(dāng)X等于Y時(shí)
else
printf("X>Y\n"); //當(dāng)X大于Y時(shí)
}
}
}

  要注意的是,在連接PC串口調(diào)試時(shí)。發(fā)送數(shù)字時(shí),發(fā)送完一個(gè)數(shù)字后還要發(fā)送一個(gè)回車符,以使scanf函數(shù)確認(rèn)有數(shù)據(jù)輸入。Printf,scanf函數(shù)的具體用法,將和其它相關(guān)函數(shù)集中出現(xiàn)在  邏輯與:條件式1 && 條件式2
  邏輯或:條件式1 || 條件式2
  邏輯非: ! 條件式2

      圖7-5 演示結(jié)果
  邏輯與,說白了就是當(dāng)條件式1"與"條件式2都為真時(shí)結(jié)果為真(非0值),否則為假(0值)。也就是說運(yùn)算會(huì)先對(duì)條件式1進(jìn)行判斷,如果為真(非0值),則繼續(xù)對(duì)條件式2進(jìn)行判斷,當(dāng)結(jié)果為真時(shí),邏輯運(yùn)算的結(jié)果為真(值為1),如果結(jié)果不為真時(shí),邏輯運(yùn)算的結(jié)果為假(0值)。如果在判斷條件式1時(shí)就不為真的話,就不用再判斷條件式2了,而直接給出運(yùn)算結(jié)果為假。
邏輯或,是指只要二個(gè)運(yùn)算條件中有一個(gè)為真時(shí),運(yùn)算結(jié)果就為真,只有當(dāng)條件式都不為真時(shí),邏輯運(yùn)算結(jié)果才為假。
邏輯非則是把邏輯運(yùn)算結(jié)果值取反,也就是說如果兩個(gè)條件式的運(yùn)算值為真,進(jìn)行邏輯非運(yùn)算后則結(jié)果變?yōu)榧,條件式運(yùn)算值為假時(shí)最后邏輯結(jié)果為真。
  同樣邏輯運(yùn)算符也有優(yōu)先級(jí)別,!(邏輯非)→&&(邏輯與)→||(邏輯或),邏輯非的優(yōu)先值最高。
如有 !True || False && True
按邏輯運(yùn)算的優(yōu)先級(jí)別來分析則得到(True代表真,F(xiàn)alse代表假)
!True || False && True
False || False && True //!Ture先運(yùn)算得False
False || False //False && True運(yùn)算得False
False //最終False || False得False
下面我們來用程序語(yǔ)言去有表達(dá),如下:
#include
#include
void main(void)
{
unsigned char True = 1; //定義
unsigned char False = 0;

SCON = 0x50; //串口方式1,允許接收
TMOD = 0x20; //定時(shí)器1定時(shí)方式2
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //啟動(dòng)定時(shí)器

if (!True || False && True)
printf("True\n"); //當(dāng)結(jié)果為真時(shí)
else
printf("False\n"); //結(jié)果為假時(shí)
}

大家可以使用以往學(xué)習(xí)的方法用keil或燒到片子上用串口調(diào)試?梢愿"!True || False && True"這個(gè)條件式,以實(shí)驗(yàn)不同算法組合來掌握邏輯運(yùn)算符的使用方法。 
示例程序下載

  • 上一篇: 第七課 運(yùn)算符和表達(dá)式(3)
  • 下一篇: 第七課 運(yùn)算符和表達(dá)式(1)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1