久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11781|回復: 8
打印 上一主題 下一主題
收起左側

初學者單片機C語言運算符

  [復制鏈接]
跳轉到指定樓層
樓主
ID:277999 發表于 2018-1-24 09:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機C語言運算符
單片機及C語言學習
auto        存儲種類說明        用以說明局部變量,缺省值為此

break        程序語句        退出最內層循環

case        程序語句        Switch語句中的選擇項

char        數據類型說明        單字節整型數或字符型數據

const        存儲類型說明        在程序執行過程中不可更改的常量值

continue        程序語句        轉向下一次循環

default        程序語句        Switch語句中的失敗選擇項

do        程序語句        構成do..while循環結構

double        數據類型說明        雙精度浮點數

else        程序語句        構成if..else選擇結構

enum        數據類型說明        枚舉

extern        存儲種類說明        在其他程序模塊中說明了的全局變量

flost        數據類型說明        單精度浮點數

for        程序語句        構成for循環結構

goto        程序語句        構成goto轉移結構

if        程序語句        構成if..else選擇結構

int        數據類型說明        基本整型數

long        數據類型說明        長整型數

register        存儲種類說明        使用CPU內部寄存的變量

return        程序語句        函數返回

short        數據類型說明        短整型數

signed        數據類型說明        有符號數,二進制數據的最高位為符號位

sizeof        運算符        計算表達式或數據類型的字節數

static        存儲種類說明        靜態變量

struct        數據類型說明        結構類型數據

swicth        程序語句        構成switch選擇結構

typedef        數據類型說明        重新進行數據類型定義

union        數據類型說明        聯合類型數據

unsigned        數據類型說明        無符號數數據

void        數據類型說明        無類型數據

volatile        數據類型說明        該變量在程序執行中可被隱含地改變

while        程序語句        構成while和do..while循環結構

附表1-1 ANSIC標準關鍵字



關鍵字        用 途        說 明

bit        位標量聲明        聲明一個位標量或位類型的函數

sbit        位標量聲明        聲明一個可位尋址變量

Sfr        特殊功能寄存器聲明        聲明一個特殊功能寄存器

Sfr16        特殊功能寄存器聲明        聲明一個16位的特殊功能寄存器

data        存儲器類型說明        直接尋址的內部數據存儲器

bdata        存儲器類型說明        可位尋址的內部數據存儲器

idata        存儲器類型說明        間接尋址的內部數據存儲器

pdata        存儲器類型說明        分頁尋址的外部數據存儲器

xdata        存儲器類型說明        外部數據存儲器

code        存儲器類型說明        程序存儲器

interrupt        中斷函數說明        定義一個中斷函數

reentrant        再入函數說明        定義一個再入函數

using        寄存器組定義        定義芯片的工作寄存器



附錄二 AT89C51特殊功能寄存器列表(適用于同一架構的芯片)

帶*號的特殊功能寄存器都是可以位尋址的寄存器

符 號        地 址        注 釋

*ACC        E0H        累加器

*B        F0H        乘法寄存器

*PSW        D0H        程序狀態字

SP        81H        堆棧指針

DPL        82H        數據存儲器指針低8位

DPH        83H        數據存儲器指針高8位

*IE        A8H        中斷允許控制器

*IP        D8H        中斷優先控制器

*P0        80H        端口0

*P1        90H        端口1

*P2        A0H        端口2

*P3        B0H        端口3

PCON        87H



電源控制及波特率選擇

*SCON        98H        串行口控制器

SBUF        99H        串行數據緩沖器

*TCON        88H        定時器控制

TMOD        89H        定時器方式選擇

TL0        8AH        定時器0低8位

TL1        8BH        定時器1低8位

TH0        8CH        定時器0低8位

TH1        8DH        定時器1高8位

附錄三 運算符優先級和結合性

級 別        類 別        名 稱        運算符        結合性

1        強制轉換、數組、

結構、聯合        強制類型轉換        ( )        右結合

下標        [ ]

存取結構或聯合成員        ->或.

2        邏 輯        邏輯非        !        左結合

字 位        按位取反        ~

增 量        加一        ++

減 量        減一        --

指 針        取地址        &

取內容        *

算 術        單目減        -

長度計算        長度計算        sizeof

3        算 術        乘        *        右結合

除        /

取模        %

4        算術和指針運算        加        +

減        -

5        字 位        左移        <<

右移        >>

6        關系        大于等于        >=

大于        >

小于等于        <=

小于        <

7        恒等于        ==

不等于        !=

8        字 位        按位與        &

9        按位異或        ^

10        按位或        |

11        邏 輯        邏輯與        &&        左結合

12        邏輯或        ||

13        條 件        條件運算        ?:

14        賦 值        賦值        =

復合賦值        Op=

15        逗 號        逗號運算        ,        右結合

1.算術運算符

  用于各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。

  2.關系運算符

  用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種。

  3.邏輯運算符

  用于邏輯運算。包括與(&&)、或(||)、非(!)三種。

  4.位操作運算符

  參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

  5.賦值運算符

  用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

  6.條件運算符

  這是一個三目運算符,用于條件求值(?:)。

  7.逗號運算符

  用于把若干表達式組合成一個表達式(,)。

  8.指針運算符

  用于取內容(*)和取地址(&)二種運算。

  9.求字節數運算符

  用于計算數據類型所占的字節數(sizeof)。

  10.特殊運算符

  有括號(),下標[],成員(→,.)等幾種。

  優先級和結合性

  c語言中,運算符的運算優先級共分為15級。1級最高,15級最低。在表達式中,優先級較高的先于優先級較低的進行運算。而在一個運算量兩側的運算符優先級相同時,則按運算符的結合性所規定的結合方向處理。 c語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左后右。如有表達式x-y+z則y應先與“-”號結合,執行x-y運算,然后再



執行+z的運算。這種自左至右的結合方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。最典型的右結合性運算符是賦值運算符。如x=y=z,由于“=”的右結合性,應先執行y=z再執行x=(y=z)運算。 c語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。

  算術運算符和算術表達式基本的算術運算符

  1.加法運算符“+”加法運算符為雙目運算符,即應有兩個量參與加法運算。如a+b,4+8等。具有右結合性。

  2.減法運算符“-”減法運算符為雙目運算符。但“-”也可作負值運算符,此時為單目運算,如-x,-5等具有左結合性。

  3.乘法運算符“*”雙目運算,具有左結合性。

  4.除法運算符“/”雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,舍去小數。如果運算量中有一個是實型,則結果為雙精度實型。

  void main(){

  printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);

  printf(\"%f,%f\\n\",20.0/7,-20.0/7);

  }

  雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,舍去小數。如果運算量中有一個是實型,則結果為雙精度實型。 printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);

  printf(\"%f,%f\\n\",20.0/7,-20.0/7);

  本例中,20/7,-20/7的結果均為整型,小數全部舍去。而20.0/7和-20.0/7由于有實數參與運算,因此結果也為實型。

  5.求余運算符(模運算符)“%”雙目運算,具有左結合性。要求參與運算的量均為整型。求余運算的結果等于兩數相除后的余數。

  void main(){

  printf(\"%d\\n\",100%3);

  }

  雙目運算,具有左結合性。求余運算符%要求參與運算的量均為整型。本例輸出100除以3所得的余數1。

  自增1,自減1運算符

  自增1運算符記為“++”,其功能是使變量的值自增1。自減1運算符記為“--”,其功能是使變量值自減1。自增1,自減1運算符均為單目運算,都具有右結合性。可有以下幾種形式: ++i i自增1后再參與其它運算。--i i自減1后再參與其它運算。

  i++i參與運算后,i的值再自增1。

  i--i參與運算后,i的值再自減1。

  在理解和使用上容易出錯的是i++和i--。特別是當它們出在較復雜的表達式或語句中時,常常難于弄清,因此應仔細分析。

  void main(){

  int i=8;

  printf(\"%d\\n\",++i);

  printf(\"%d\\n\",--i);

  printf(\"%d\\n\",i++);

  printf(\"%d\\n\",i--);

  printf(\"%d\\n\",-i++);

  printf(\"%d\\n\",-i--);

  } i<--8

  i<--i+1

  i<--i-1

  i<--i+1

  i<--i-1

  i<--i+1

  i<--i-1 int i=8;

  printf(\"%d\\n\",++i);

  printf(\"%d\\n\",--i);

  printf(\"%d\\n\",i++);

  printf(\"%d\\n\",i--);

  pri



ntf(\"%d\\n\",-i++);

  printf(\"%d\\n\",-i--);

  i的初值為8

  第2行i加1后輸出故為9;

  第3行減1后輸出故為8;

  第4行輸出i為8之后再加1(為9);

  第5行輸出i為9之后再減1(為8);

  第6行輸出-8之后再加1(為9);

  第7行輸出-9之后再減1(為8)

  void main(){

  int i=5,j=5,p,q;

  p=(i++)+(i++)+(i++);

  q=(++j)+(++j)+(++j);

  printf(\"%d,%d,%d,%d\",p,q,i,j);

  }

  i<--5,j<--5,p<--0,q<--0

  i+i+i--->p,i+1-->i,i+1-->i,i+1-->i

  j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;

  p=(i++)+(i++)+(i++);

  q=(++j)+(++j)+(++j);

  這個程序中,對p=(i++)+(i++)+(i++)應理解為三個i相加,故p值為15。然后i再自增1三次相當于加3故i的最后值為8。而對于q的值則不然,q=(++j)+(++j)+(++j)應理解為q先自增1,再參與運算,由于q自增1三次后值為8,三個8相加的和為24,j的最后值仍為8。算術表達式表達式是由常量、變量、函數和運算符組合起來的式子。一個表達式有一個值及其類型,它們等于計算表達式所得結果的值和類型。表達式求值按運算符的優先級和結合性規定的順序進行。單個的常量、變量、函數可以看作是表達式的特例。

評分

參與人數 3黑幣 +59 收起 理由
morrisliao + 5 很給力!
旋風sv + 4 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:266802 發表于 2018-1-25 06:29 來自手機 | 只看該作者
不錯,收藏了
回復

使用道具 舉報

板凳
ID:279740 發表于 2018-1-26 19:56 來自手機 | 只看該作者
我收藏了,。。
回復

使用道具 舉報

地板
ID:279640 發表于 2018-1-26 19:59 | 只看該作者
挺不錯的。;學習了!!
回復

使用道具 舉報

5#
ID:145935 發表于 2018-1-27 16:59 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

6#
ID:279878 發表于 2018-1-28 21:46 | 只看該作者
不錯 收藏了 很有幫助
回復

使用道具 舉報

7#
ID:266802 發表于 2018-1-31 06:57 來自手機 | 只看該作者
bc不錯不錯
回復

使用道具 舉報

8#
ID:260785 發表于 2018-1-31 08:30 | 只看該作者
感謝分享
回復

使用道具 舉報

9#
ID:272625 發表于 2018-2-5 21:41 來自手機 | 只看該作者
不錯,小白收了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕久久精品 | 国产探花在线观看视频 | 国产视频h | 日韩精品一区二区三区在线观看 | 日韩精品一区二区三区中文在线 | 成人高清视频在线观看 | 国产精品久久久 | 国产免费黄网 | 成人伊人网 | av电影一区二区 | 人人射人人 | 一区二区三区四区不卡视频 | 香蕉一区| av黄色在线观看 | 黄色免费在线观看 | 一级毛片黄片 | 蜜臀网| 国产一区二 | 欧美日韩在线高清 | 成人在线欧美 | 国产91av视频在线观看 | 国产日韩欧美 | 91精品国产综合久久久动漫日韩 | 二区精品 | 九九精品在线 | 欧美视频成人 | 亚洲精品一区在线 | 久久久免费 | 91在线精品播放 | 91免费视频观看 | 中文字幕精 | 国产一区二区视频在线观看 | 四虎最新 | 污片在线免费观看 | 99热国产免费| 久久综合激情 | 国产一区二区三区四 | 欧美一级黄色片 | 久久一区精品 | 国产精品久久二区 | 国产乱码精品1区2区3区 |