Arduino與C語言類似,有多種數據類型。數據類型在數據結構中的定義是一個值的集合,以及定義在這個值集上的一組操作,各種數據類型需要在特定的地方使用。一般來說,變量的數據類型決定了如何將代表這些值的位存儲到計算機的內存中。在聲明變量時需要指定它的數據類型,所有變量都具有數據類型,以便決定存儲不同類型的數據
一、常用的數據類型
常用的數據類型有布爾類型、字符型、字節型、整型、無符號整型、長整型、無符號長數浮點型、雙精度浮點型等,本小節會依次介紹這些數據類型。
1.布爾類型
布爾值(bolean)是一種邏輯值,其結果只能為真(true)或者假(false)。布爾值可以用來計算,最常用的布爾運算符是與運算(&&)、或運算(||)和非運算(!)。
真值表中,對於與運算,僅當A和B均為真時,運算結果為真,否則,運算結果為假;對於或運算,僅當A和B均為假時,運算結果為假,否則,運算結果為真。對於非運算,當A為真時,運算結果為假;當A為假時,運算結果為真。
2.字符型
字符型(char)變量可以用來存放字符,其數值范圍是-128~+128。例如:
char A=58;
3.字節型
字節(byte)只能用一個字節(8位)的存儲空間,它可以用來存儲0~255之間的數字。例如: byte B=8;
4.整型
整型(int)用兩個字節表示一個存儲空間,它可以用來存儲-32768~+32767 之間的數字。在Arduino中,整型是最常用的變量類型。例如:
int C=13;
5.無符號整型
同整型一樣,無符號整型(unsigned int)也用兩個字節表示一個存儲空間,它可以用來存儲0~65536之間的數字,通過范圍可以看出,無符號整型不能存儲負數。例如:
unsigned int D=65535;
6.長整型
長整型(long)可以用4個字節表示一個存儲空間,其大小是int型的2倍。它可以用來存儲-2147483648~2147483648 之間的數字。例如:
long E=2147483647;
7.無符號長整型
無符號長整型(unsigned long)同長整型一樣,用4個字節表示一個存儲空間,它可以用來存儲0~4294967296之間的數字。例如:
unsigned long F=4294967295;
8.浮點型
浮點數(float)可以用來表示含有小數點的數,例如:1.24。當需要用變量表示小數時,浮點數便是所需要的數據類型。浮點數占有4個字節的內存,其存儲空間很大,能夠存儲帶小數的數字。例如:
a=b/3;
當b=9時,顯然a=3,為整型。
當b=10時,正確結果應為3.3333,可是由於a是整型,計算出來的結果將會變為3,這與實際結果不符。
但是,如果方程為:floata=b/3.0。
當b=9時,a=3.0。
當b=10時,a=3.3333,結果正確。
如果在常數后面加上“.0”,編譯器會把該常數當做浮點數而不是整數來處理。
9.雙精度浮點型
雙精度浮點型(double)同float類似,它通常占有8個字節的內存,但是,雙精度浮點型數據比浮點型數據的精度高,而且范圍廣。但是,雙精度浮點型數據和浮點型數據在Arduino中是一樣的。
二、數據類型轉換
在編寫程序過程中需要用到一些有關數據類型轉換的函數,這里介紹幾個常見的數據類型轉換函數。
(1)char() 8bit有符號
功能:將一個變量的類型變為char。
語法:char(x)
參數:x:任何類型的值
返回值:char型值
(2)byte() 8bit無符號
功能:將一個值轉換為字節型數值。
語法:byte(x)
參數:x:任何類型的值
返回值:字節
(3)int() 16bit有符號
功能:將一個值轉換為整型數值。
語法:int(x)參數:x:任何類型的值
返回值:整型的值
(4)long() 32bit有符號
功能:將一個值轉換為長整型數值。
語法:long(x)
參數:x:任何類型的值
返回值:長整型的值
(5)float()
功能:將一個值轉換換浮點型數值。
語法:float(x)
參數:x:任何類型的值
返回值:浮點型的值
(6)word()
功能:把一個值轉換為word數據類型的值,或由兩個字節創建一個字符。
語法:word(x)或word(H,L)
參數:x:任何類型的值,H:高階字節(左邊),L:低階字節(右邊)
返回值:字符
三、自定義數據類型
在Arduino中可以根據自己的需要定義結構類型的數據,其方法和C語言是一致的。
struct 名稱
{
成員列表;
};