C51的數(shù)據(jù)類型_第1頁
C51的數(shù)據(jù)類型_第2頁
C51的數(shù)據(jù)類型_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C51的數(shù)據(jù)類型數(shù)據(jù)的格式通常稱為數(shù)據(jù)類型。 標(biāo)準(zhǔn)的C語言的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和組合數(shù) 據(jù)類型,組合數(shù)據(jù)類型由基本數(shù)據(jù)類型構(gòu)造而成。標(biāo)準(zhǔn)的C語言的基本數(shù)據(jù)類型有字符型char、短整型short、整型int、長整型long、浮點(diǎn)型float、和雙精度型 double。組合數(shù)據(jù)類 型有數(shù)組類型、結(jié)構(gòu)體類型、共同體類型和枚舉類型,另外還有指針類型和空類型。C51的居類型也分為基本數(shù)據(jù)類型和組合數(shù)據(jù)類型,情況與標(biāo)準(zhǔn)C中的數(shù)據(jù)類型基本相同, 但其中char型與short型相同,float型與double型相同。另外,C51中還有專門針對于 MCS-51單 片機(jī)的特殊功能寄存器型和位類型。具體情況

2、如下:1、字符型char有signed char和unsigned char之分,默認(rèn)為 signed char。它們的長度均為一個(gè)字節(jié), 用于存放一個(gè)單字節(jié)的數(shù)據(jù)。對于sig ned char,它用于定義帶符號字節(jié)數(shù)據(jù),其字節(jié)的最高位為符號位,“0”表示正數(shù),“1”表示負(fù)數(shù),補(bǔ)碼表示,所能表示的數(shù)值范圍是-128+127;對于unsigned char,評測用于定義無符號字節(jié)數(shù)據(jù)或字符,可以存放一個(gè)字節(jié)的無符號數(shù), 其所表示的數(shù)值范圍為 0255。Un sig ned char可以用來存放無符號數(shù),也可以存放西文字符,一個(gè)西文字符占一個(gè)字節(jié),在計(jì)算機(jī)內(nèi)部用ASCI I碼存放。2、int整型有

3、signed int和unsigned int之分,默認(rèn)為 signed int。它們的長度均為兩個(gè)字節(jié),用于 存放一個(gè)雙字節(jié)數(shù)據(jù)。對于signed int,它用一存放兩字節(jié)帶符號數(shù),補(bǔ)碼表示,所能表示的數(shù)值范圍為-32768+32767。對于unsigned int,它用于存放兩字節(jié)無符號數(shù),數(shù)的范圍為 065535。3、long長整型有signed long和unsigned long之分,默認(rèn)為 signed long。它們的長度均為四個(gè)字節(jié), 用于存放一個(gè)四字節(jié)數(shù)據(jù)。對于sig ned long,它用于存放四字節(jié)帶符號數(shù),補(bǔ)碼表示,所能表示的數(shù)值范圍為-2147483648+21474

4、83647。對于unsigned long,它用于存放四字節(jié)無符 號數(shù),所能表示的數(shù)值范圍為 04294967295。4、float浮點(diǎn)型float型數(shù)據(jù)的長度為四個(gè)字節(jié),格式符合IEEE-754標(biāo)準(zhǔn)的單精度浮點(diǎn)型數(shù)據(jù),包含指數(shù)和尾數(shù)兩部分,最高位為符號位,“1”表示負(fù)數(shù),“0”表示正數(shù),其次的8位為階碼,最后的23位為尾數(shù)的有效位,由于尾數(shù)的整數(shù)部分隱含為“1 ”,所以尾數(shù)的精度為24位。在內(nèi)存中的格式如下圖所示。字節(jié)地址3210浮點(diǎn)數(shù)的內(nèi)容SEEE,EEEEEMMM,MMMMMMMM,MMMMMMMM,MMMM其中,S為符號位;E為階碼位,共8位,用移碼表示。階碼 E的正以值范圍為1254

5、, 而對應(yīng)的指數(shù)實(shí)際取值范圍為-126+127; M為尾數(shù)的小數(shù)部分,共23位,尾數(shù)的整數(shù)部分始終為“1”。故一個(gè)浮點(diǎn)數(shù)的取值范圍為(-1)SX 2e-127X (1.M)。例如浮點(diǎn)數(shù) +124.75=+1111,100.11B=+1.1111 0111 X 2+110,符號位為“ 0” ,8 位階碼 E 為 +110+1111 11仁 1000 0101B, 23 位數(shù)值位為 111 1001 1000 0000 0000 0000B , 32 位浮點(diǎn)數(shù)表 示形式為0100 0010 1111 1001 1000 0000 0000 0000B=42F98000H ,在內(nèi)存中的表式形式如下

6、圖所示。字節(jié)地址3210浮點(diǎn)數(shù)的內(nèi)容0100 00101111 10011000 00000000 0000需要指出的是,對于浮點(diǎn)型數(shù)據(jù)除了正常數(shù)值之外,還可能出現(xiàn)非正常數(shù)值。 根據(jù)IEEE標(biāo)準(zhǔn),當(dāng)浮點(diǎn)數(shù)據(jù)取以下數(shù)值(16進(jìn)制數(shù))時(shí)即為非正常值:FFFF FFFFIH非數(shù) NaN)7F80 0000H (正溢出 +1NF)FF80 0000H (負(fù)溢出-1NF)另外,由MCS-51單片機(jī)不包括捕獲浮點(diǎn)運(yùn)算錯(cuò)誤的中斷向量,因此必須由用戶自己根 據(jù)可能出現(xiàn)的錯(cuò)誤條件用軟件來進(jìn)行適當(dāng)?shù)奶幚怼?、*指針型指針型本身就是一個(gè)變量,在這個(gè)變量中存放著指向另一個(gè)數(shù)據(jù)的地址。這個(gè)指針變量要占用一定的內(nèi)存單元。

7、對不同的處理器其長度不一樣,在C51中它的長度一般為 13個(gè)字節(jié)。6、特殊功能寄存器這是C51擴(kuò)充的數(shù)據(jù)類型,用于訪問MCS-51單片機(jī)中的特殊功能寄存器數(shù)據(jù)。它分為sfr和sfr16兩種類型,其中sfr為字節(jié)型特殊功能寄存器類型,占一個(gè)內(nèi)存單元,利用它可 以訪問MCS-51內(nèi)部的所有特殊功能寄存器;sfr16為雙字節(jié)型特殊功能寄存器類型,占用兩個(gè)字節(jié)單元,利用它可以訪問MCS-51內(nèi)部的所有兩個(gè)字節(jié)的特殊功能寄存器。在C51中對特殊功能寄存器的訪問必須先用 sfr或sfr16進(jìn)行聲明。7、位類型這也是C51中擴(kuò)充的數(shù)據(jù)類型,用于訪問MCS-51單片機(jī)中可尋址的位單元。在C51中,支持兩種位類

8、型:bit型和sbit型。它們在內(nèi)存中都只占一個(gè)二進(jìn)制位,其值可以是“ 1”或 “0”。其中用bit定義的位變量在 C51編譯器編譯時(shí),在不同的時(shí)候位地址是可以變化的。而用sbit定義的位變量必須與 MCS-51單片機(jī)的一個(gè)可以尋址位單元或可位尋址的字節(jié)單元 中的某一位聯(lián)系在一起,在C51編譯器編譯時(shí),其對應(yīng)的位地址是不可變化的。F表為KEIL C51編譯器能夠識別的基本數(shù)據(jù)類型基本數(shù)據(jù)類型長度取值范圍Un sig ned char1字節(jié)0255Signed char1字節(jié)-128+127Un sig ned int2字節(jié)065535Signed int2字節(jié)-32768+32767Un si

9、g ned long4字節(jié)04294967295Signed long4字節(jié)-2147483648+2147483637float4字節(jié)± 1.175494E-38土 3.402823E+38bit1位0或1sbit1位0或1sfr1字節(jié)0255Sfr162字節(jié)065535在C51語言程序中,有可能會出現(xiàn)在運(yùn)算中數(shù)據(jù)類型不一致的情況。C51允許任何標(biāo)準(zhǔn)數(shù)據(jù)類型的隱式轉(zhuǎn)換,隱式轉(zhuǎn)換的優(yōu)先順級順序如下:Bit->char- >in t-> Ion g->floatsig ned-> un sig ned也就是說,當(dāng)char型與int弄進(jìn)行運(yùn)算時(shí),選自動對ch

10、ar型擴(kuò)展為int型,然后與int型進(jìn)行運(yùn)算,運(yùn)算結(jié)果為int型。C51除了支持隱式類型轉(zhuǎn)換外,還可以通過強(qiáng)制類型轉(zhuǎn)換符“()”對數(shù)據(jù)類型進(jìn)行人為的強(qiáng)制轉(zhuǎn)換。C51編譯器除了能支持以上這些基本數(shù)據(jù)類型之外,還能支持一下結(jié)復(fù)雜的組合型數(shù)據(jù)類型,如數(shù)組類型、指針類型、結(jié)構(gòu)類型和聯(lián)合類型等復(fù)雜的數(shù)據(jù)類型。在本書的后面將相 繼介紹它們。8、枚舉在C51語言中,用作標(biāo)志的變量通常只能被賦予如下兩個(gè)值中的一個(gè):True(1)或False(O)。但是在編程中,常常會將作為標(biāo)志使用的變量賦予除了True或False(0)以外的值。另外,標(biāo)志變量通常被定義為int數(shù)據(jù)類型,在程序使用中作用往往會模糊不清。為避免這種情況,在C51語言中提供枚舉類型處理這種情況。枚舉數(shù)據(jù)類型是一個(gè)有名字的某些整型常量的集合。這些整型常量是該類型變量可取的所有合法值。枚舉定義時(shí)應(yīng)當(dāng)列出該類型變量的所有可取值。枚舉定義的格式與結(jié)構(gòu)和聯(lián)合基本相同,也有兩種方法。先定義枚舉類型,再定義枚舉變量,格式如下:enum 枚舉名 枚舉值列表;enum 枚

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論