Arduino - 資料型別

C 中的資料型別是指用於宣告不同型別的變數或函式的擴充套件系統。變數的型別決定了它在儲存中佔用的空間大小以及如何編譯儲存的位模式。

下面提供了在 Arduino 程式設計期間將使用的所有資料型別。

  • void
  • Boolean
  • char
  • Unsigned char
  • byte
  • int
  • Unsigned int
  • word
  • long
  • Unsigned long
  • short
  • float
  • double
  • array
  • String-char array
  • String-object

void

void 關鍵字僅在函式宣告中使用。它表示該函式不會向呼叫它的函式返回任何資訊。

Void Loop ( ) {
   // rest of the code
}

布林值

布林值包含兩個值之一,truefalse。每個布林變數佔用一個位元組的記憶體。

boolean val = false ; // 宣告變數型別為 boolean 並初始化為 false
boolean state = true ; // 宣告變數型別為 boolean 並初始化為 true

char

佔用儲存字元值的一個位元組記憶體的資料型別。字元文字用單引號寫成:‘A’;對於多個字元,字串使用雙引號- ABC

但是,字元儲存為數字。你可以在 ASCII 圖表中 看到特定的編碼。這意味著可以對字元進行算術運算,其中使用字元的 ASCII 值。例如,‘A’+ 1 的值為 66,因為大寫字母 A 的 ASCII 值為 65。

Char chr_a = a ;//declaration of variable with type char and initialize it with character a
Char chr_c = 97 ;//declaration of variable with type char and initialize it with character 97

ASCII 字元表

unsigned char

unsigned char 是一種佔用一個位元組記憶體的無符號資料型別。 unsigned char 資料型別對 0 到 255 之間的數字進行編碼。

Unsigned Char chr_y = 121 ; // declaration of variable with type Unsigned char and initialize it with character y

byte

一個位元組儲存一個 8 位無符號數,從 0 到 255。

byte m = 25 ;//declaration of variable with type byte and initialize it with 25

int

整數是數字儲存的主要資料型別。int 儲存一個 16 位(2 位元組)的值。它具有-32,768 到 32,767 的範圍(最小值-2^ 15 和最大值(2^15)-1)。

INT 所佔位元組長度每個 Arduino 板子都有可能不一樣,例如,在 Arduino Due 上,int 儲存 32 位(4 位元組)值。這產生-2,147,483,648 到 2,147,483,647 的範圍(最小值-2 ^ 31 和最大值(2 ^ 31)-1)。

int counter = 32 ;// declaration of variable with type int and initialize it with 32

unsigned int

無符號整數(unsigned int)與 int 相同,都是儲存 2 個位元組值。但是,它們不儲存負數,而只儲存正值,產生 0 到 65,535(2 ^ 16)-1 的數字範圍。Due 儲存一個 4 位元組(32 位)值,範圍從 0 到 4,294,967,295(2 ^ 32 - 1)。

Unsigned int counter = 60 ; // declaration of variable with 
   type unsigned int and initialize it with 60

word

在 Uno 和其他基於 ATMEGA 的板上,一個 word 儲存一個 16 位無符號數。在 Due 和 Zero 上,它儲存一個 32 位無符號數。

word w = 1000 ;//declaration of variable with type word and initialize it with 1000

long

long 變數是數字儲存的擴充套件大小變數,儲存 32 位(4 位元組),從-2,147,483,648 到 2,147,483,647。

Long velocity = 102346 ;//declaration of variable with type Long and initialize it with 102346

unsigned long

無符號長變數是數字儲存的擴充套件大小變數,儲存 32 位(4 位元組)。與標準長整數不同,無符號長整數不會儲存負數,使其範圍從 0 到 4,294,967,295(2 ^ 32 - 1)。

Unsigned Long velocity = 101006 ;// declaration of variable with 
   type Unsigned Long and initialize it with 101006

short

short 是 16 位資料型別。在所有 Arduino(基於 ATMega 和 ARM)上,short 儲存一個 16 位(2 位元組)值。這產生-32,768 到 32,767 的範圍(最小值-2 ^ 15 和最大值(2 ^ 15)-1)。

short val = 13 ;//declaration of variable with type short and initialize it with 13

float

浮點數的資料型別是帶小數點的數字。浮點數通常用於近似模擬和連續值,因為它們具有比整數更高的解析度。

浮點數可以大到 3.4028235E + 38 並且低至-3.4028235E + 38。它們儲存為 32 位(4 位元組)資訊。

float num = 1.352;//declaration of variable with type float and initialize it with 1.352

double

在 Uno 和其他基於 ATMEGA 的板上,雙精度浮點數佔用四個位元組。也就是說,double 實現與 float 完全相同,沒有精度增益。在 Arduino Due 上,雙精度具有 8 位元組(64 位)精度。

double num = 45.352 ;// declaration of variable with type double and initialize it with 45.352