- N +

c51數據類型有哪些?四種數據類型

本篇文章給大家談談c51數據類型有哪些,以及四種數據類型對應的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了您的問題,不要忘了收藏本站喔。

c51變量定義與ansic變量定義有什么不同

C51語言的變量定義

定義方式:

普通變量:[修飾符]數據類型[存儲類型]變量名[=值]

指針變量:[修飾符]所指向的地址的數據類型[所指向的地址的存儲類型]*[指針的存儲類型]變量名[=&所指向的變量名]

指針變量的賦值:(不用*)指針變量變量名=所指向的變量名

c51存儲器類型

C51存儲類型C51存貯器類型C51編譯器完全支持8051微處理器及其系列的結構,可完全訪問MCS-51硬件系統所有部分。每個變量可準確地賦予不同的存貯器類型(data,idata,pdata,xdata,code)。訪問內部數據存貯器(idata)要比訪問外部數據存貯器(xdata)相對要快一些,因此,可將經常使用的變量置于內部數據存貯器中,而將較大及很少使用的數據單元置于外部數據存貯器中。

a51和c51的優缺點

三星手機a51的優點:屏幕很好,視覺效果佳;整機重量適中;相機焦段覆蓋全面,可以滿足用戶的日常需求;后殼有玻璃質感。缺點系統略顯卡頓有待優化。

C51是應用最廣泛的初學者容易上手的單片機,新增數據類型,新增數據存儲器類型。缺點運行速度慢,容易燒壞芯片。適用對性能要求不高的用戸。

c51 p口的類型是什么

如果對于C語言。P0只是一個普通的變量。但是對于C51單片機語言,P0有其特定的含義。特指通用輸入輸出端口(GPIO)的第0組端口。也就是說,P0是和硬件芯片上的一組管腳,共計8個管腳相對應的。 當使用P0=0xfe這種形式時,該組管腳必須被配置成可寫的,也就是可用來輸出的形式。 0xfe轉為二進制值為11111110,所以在這樣賦值后,該組8個管腳依次會按照對應位的值,輸出高(1)或者低(0)電平。對于0xfe,則對應電平為高高高高高高高低。

51單片機中的基本數據類型

在標準C語言中,存在著如下六種基本數據類型:

1、char:字符型;

2、short=shortint:短整型

3、int:整型

4、long=longint:長整型

5、float:單精度浮點型

6、double:雙精度浮點型

而面向51單片機的KeiluVision4對此進行了簡化,因此,可以理解為只存在如下四種基本數據類型:

1、char:字符型

2、int=short=shortint:整型

3、long=longint:長整型

4、float=double:單精度浮點型

其中,基本整型數據類型又可以通過signed關鍵詞擴展為有符號的signedchar、signedint、signedlong類型,或通過unsigned關鍵詞擴展為無符號的unsignedchar、unsignedint、unsignedlong類型;而對于不加關鍵詞擴展的char、int、long本身,KeiluVision4則一律認為是signed類型。

應對51單片機硬件的一些特點,KeiluVision4還擴展了bit、sbit、sfr、sfr16等四種特殊基本數據類型,它們都是標準C中所沒有的。其中:

1、bit:聲明一個普通的位變量。例如:"bitflag;"。

2、sbit:聲明特殊功能寄存器中的某一位。例如,使用"sbitTI=SCON^0;",就聲明了TI為特殊功能寄存器SCON的第0位。

3、sfr:聲明一個8位寄存器為特殊功能寄存器。例如,將51單片機內存地址0x98處的存儲單元聲明為8位特殊功能寄存器SCON,可以使用"sfrSCON=0x98;"語句。

4、sfr16:聲明一個16位的寄存器為特殊功能寄存器。為了將51單片機內存地址0xCC處開始的連續兩個存儲單元聲明為一個統一的16位特殊功能寄存器T2,可以使用"sfr16T2=0xCC;"語句。

需要注意的是,在KeiluVision4中,用sbit、sfr、sfr16聲明特殊功能寄存器變量或特殊功能寄存器位變量時,其聲明語句都只能放在函數外,而不能放在函數內,否則出現語法錯誤;而用bit聲明普通位變量時,聲明語句既可放在函數外,也可放在函數內。此外,bit、sbit、sfr、sfr16都不支持指針和數組擴展,因此,不能定義bit、sbit、sfr、sfr16型指針和數組。當然,根據C語言標準,無論是sbit、sfr、sfr16還是bit,變量必須在使用之前(至少在使用之時)聲明:這一點是顯然的。

對于初學者來說,其實沒有必要深究sbit、sfr、sfr16的用法,它們通常用在51單片機的系統自帶頭文件中,一般情況下無需用戶關心。

c51函數在數據類型方面進行了哪些調整

給你兩個函數,一個函數統計整數長度,一個將整數分解成單個字符存在數組中。你可以參考一下。

/*******************************************************************************************************函數名稱:Count_Int_Length函數功能:統計整數位數函數輸入:

待統計整數通過Value進行傳遞函數輸出:統計結果通過Int_Len返回*******************************************************************************************************/unsignedcharCount_Int_Len(longintValue){unsignedcharInt_Len=1;longintData_Temp;Data_Temp=Value;while(Data_Temp>=10)//計算數據長度{Data_Temp/=10;Int_Len++;}returnInt_Len;}/*******************************************************************************************************函數名稱:Int_To_Char函數功能:將未知長度整數按位分解,并存于字符數組函數說明:整數長度不超5位函數輸入:

待分解整數通過Value傳遞,數據長度通過Value_Len傳遞函數輸出:分解后的數據存放在全局數組變量[]中。*******************************************************************************************************/voidInt_To_Char(longintValue,unsignedcharValue_Len){unsignedcharx;//定義循環變量longintData_Temp;//定義數據臨時變量,數據長度Data_Temp=Value;for(x=0;x<Value_Len;x++)//對數組進行賦值,從低位到高位{Int_Bit[Value_Len-x-1]=Data_Temp%10;Data_Temp/=10;}}

關于c51數據類型有哪些,四種數據類型的介紹到此結束,希望對大家有所幫助。

返回列表
上一篇:
下一篇: