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