(玩電子) 電子技術(shu)學習(xi)與(yu)研xin)/div>
當前位置︰單片(pian)機教程(cheng)網 >> 基礎(chu)教程(cheng) >> 瀏覽(lan)文(wen)章(zhang)

九门彩票官网

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

關系運算符(fu),同樣(yang)我們也並不陌生。單片(pian)機C語(yu)言中有六(liu)種關系運算符(fu),這些東西(xi)同樣(yang)是在我們小(xiao)時候學算術(shu)時就已經學習(xi)過了的︰

>           大于(yu)

<           小(xiao)于(yu)

>=       大于(yu)等于(yu)

<=       小(xiao)于(yu)等于(yu)

==       等于(yu)

!=       等于(yu)

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

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

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

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

借助我們在上(shang)一課做好的電路和學習(xi)了的相(xiang)關操作。我們來做一個關系運算符(fu)相(xiang)關的實例(li)程(cheng)序。為了增加you) xi)的趣味(wei)性和生動(dong)性,不妨我們來假設在做一個會做算術(shu)的機器人,當然真正會思考對話的機器,我想(xiang)我是做不出來的了,這里的mou)絛蛑zhi)是用來學習(xi)關系運算符(fu)的基本應用。

#include  <AT89X51.H>

#include  <stdio.h>

void  main(void)

{

int  x,y;

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

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

TI  =  1;

TR1  =  1;  //啟(qi)動(dong)定時器

while(1)

{

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

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


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

if  (x  <  y)

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

else       //當 X 不小(xiao)于(yu) Y 時再作判斷

{

if  (x  ==  y)

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

else

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

}

}

}

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

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

邏輯(ji)運算符(fu) 關系運算符(fu)所(suo)能反映的是兩個表達式(shi)之間的大小(xiao)等于(yu)關系,那(na)邏輯(ji)運算符(fu)則(ze)是用于(yu)求(qiu)條

件式(shi)的邏輯(ji)值,用邏輯(ji)運算符(fu)將關系表達式(shi)或邏輯(ji)量連接起來就是邏輯(ji)表達式(shi)了。也許你會 對為什麼chu)奧嘸ji)運算符(fu)將關系表達式(shi)連接起來就是邏輯(ji)表達式(shi)了”這一個描(miao)述有疑(yi)惑的地(di)方。 其(qi)實之前說過“要(yao)注(zhu)意的是用關系運算符(fu)的運算結果只(zhi)有 0 和 1 兩種,也就是邏輯(ji)的真與(yu)假”, 換句話說也就是邏輯(ji)量,而邏輯(ji)運算符(fu)就用于(yu)對邏輯(ji)量運算的表達。邏輯(ji)表達式(shi)的一般(ban)形式(shi) 為︰

邏輯(ji)與(yu)︰條件式(shi) 1  &&  條件式(shi) 2 邏輯(ji)或︰條件式(shi) 1    條件式(shi) 2 邏輯(ji)非:  !  條件式(shi) 2


圖 7-1    演(yan)示結果

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

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

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

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

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

如有    !True    False  &&  True

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

!True  

False

&&

True

 

False  

False

&&

True

//!Ture 先運算得 False

False  

False

   

//False  &&  True 運算得 False

False

     

//最終 False    False 得 False

下面我們來用程(cheng)序語(yu)言去(qu)有表達,如下︰

#include  <AT89X51.H>

#include  <stdio.h>

void  main(void)

{

unsigned  char  True  =  1;  //定義

unsigned  char  False  =  0;

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

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

TI  =  1;

TR1  =  1;  //啟(qi)動(dong)定時器

if  (!True    False  &&  True)

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


else

}

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

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

&&  True”這個條件式(shi),以實驗不一樣(yang)算法組合(he)來掌握(wo)zhang)嘸ji)運算符(fu)的使用方法。

九门彩票官网

九门彩票官网 | 下一页