Arduino -数据类型-系列2

  • 内容
  • ....
  • 相关

数据类型在C语言中是一个很广泛的体系,它用于声明不同类型的变量或函数。变量的类型决定了它在存储中占用多少空间以及如何存储。下面列出了我们在Arduino编程过程中会使用到的所有数据类型。

void

例子:

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

void只在函数声明中使用。它表明,函数不会向调用它的函数返回任何信息。

Boolean

例子:

boolean val = false ; // 用布尔类型声明变量,并用false初始化它.
boolean state = true ; // 用布尔类型声明变量,并用true初始化它.

布尔类型的变量包含了两个值中,true 或 false。每个布尔变量占用一个字节的内存。

Char

例子:

Char chr_a = 'a' ;//用char类型声明变量,并用字符a初始化它.
Char chr_c = 97 ;//用char类型声明变量,并用字符97初始化它.

char类似于字符串,这种变量的大小通常为1个字节。书写时,单字符用单引号,比如:’A’;多个字符,使用双引号:”ABC”。当字符以数字形式存储时,需要遵循ASCII码表中的特定编码,这意味着可以使用字符对应的 ASCII 码进行算术运算。比如:’A’ + 1的值是66,因为大写字母A的ASCII 码是65。 范围是-128 ~127 。

 ASCII 码表

unsigned char

例子:

Unsigned Char chr_y = 121 ; // 用无符号字符类型声明变量

无符号字节型是一种无符号数据类型,占用一个字节的内存。无符号字节类型的取值范围是 0 到 255。

byte

byte 存储一个8位无符号数字,范围从0到255。如:

byte m = 25 ;//用字节类型声明变量,并用25初始化它.

int

整形是数字存储的主要数据类型。int 存储一个16位(2字节)的值范围是: -32,768到 32,767 (最小值为-2^15,最大值为(2^15)- 1)。在Arduino中 int 的大小会因开发板的不同而不同。例如,在Arduino Due上,int 存储一个32位(4字节)的值,范围是 -2,147,483,648 到 2,147,483,647 (最小值为-2^31,最大值为(2^31)- 1)。如:

int counter = 32 ;// 用int类型声明变量,并用32初始化它.

Unsigned int

无符号整型数在存储方式上与 int 相同,它不存储负值只存储正值,范围是:0 到65,535 (2^16)- 1。对于Arduino Due 它的存储范围从 0 到4,294,967,295 (2^32 – 1)。

Unsigned int counter = 60 ; 

Word

在Uno和其他基于ATMEGA的开发板上,一个 word 存储一个16位无符号数字。而在 Due 和 Zero 开发板上,word 存储一个32位无符号数字。

word w = 1000 ;//使用类型 word 声明变量,并用1000初始化它.

Long

long 长整型常量末尾要用L标识出来,它字节数是4,存储位数32位,范围:从 -2,147,483,648 到 2,147,483,647。

Long velocity = 102346 ;//Long型变量的声明,并用102346初始化它.

unsigned long

无符号long变量是用于数字存储和存储32位(4字节)的扩展大小变量。与long不同,无符号long变量不存储负数,其范围从 0 到 4,294,967,295(2^32 – 1)。

Unsigned Long velocity = 101006 ;

short

short是16位数据类型。在所有arduino(基于ATMega和ARM)的开发板上,一个short存储一个16位(2字节)的值。这将产生-32,768到32,767的范围(最小值为-2^15,最大值为(2^15)- 1)。

short val = 13 ;

float

浮点数的数据类型是具有小数点的数字。浮点数通常用于近似模拟值和连续值,因为它们比整数具有更高的分辨率。浮点数可以大到3.4028235E+38,也可以小到-3.4028235E+38。它们被存储为32位(4字节)的信息。

float num = 1.352;

double

在Uno和其他基于ATMEGA的开发板上,double 占用4个字节。也就是说,double 与 float 完全相同,在精度上没有任何提高。在Arduino Due上,double有8 字节(64bit)的精度。

double num = 45.352 ;

关于数据类型的介绍到此结束,下期会介绍Arduino的变量和常量。