📜  Arduino数据类型

📅  最后修改于: 2020-12-27 03:17:03             🧑  作者: Mango

Arduino数据类型

数据类型用于标识数据类型和用于处理数据的关联功能。它用于声明函数和变量,以确定位模式和存储空间。

下面列出了我们将在Arduino中使用的数据类型:

  • 无效数据类型
  • int数据类型
  • 字符数据类型
  • 浮动数据类型
  • 双重数据类型
  • Unsigned int数据类型
  • 短数据类型
  • 长数据类型
  • 无符号长数据类型
  • 字节数据类型
  • 字数据类型

无效数据类型

void数据类型指定一组空值,仅用于声明函数。它用作不返回任何值的函数的返回类型。

让我们看一下Arduino中的示例。

考虑下面的代码。

int a = 3;
void setup( )
{
.   //
}
void loop ( )    
{
.
.
}

整数数据类型

整数数据类型是整数,例如5,-6、10,-123等。它们没有任何小数部分。整数数据类型由int表示。它被认为是存储数字的主要数据类型。

int的大小为2个字节(16位)。

最小范围:-32768至32767或-(2 ^ 15)至((2 ^ 15)-1)

在ATmega和Arduino UNO板上,int数据类型存储2字节的值。

在诸如Arduino Zero和MKR1000(SAMD板)以及Arduino Due这样的板上,int数据类型存储4字节或32位的值。在这种情况下的最小范围是-(2 ^ 31)至((2 ^ 31)-1)或-2,147,483,648至2,147,483,647。

负数以2的补码形式存储,其中符号位或最高位标记为负数。

语法用作:

int var = val;

哪里,

var =变量

=分配给变量的值

例如,

int a;
int b = 3;

任何变量或标识符都将成为整数变量,并且只能容纳整数值。

让我们通过Arduino中的示例来理解。

考虑下面的代码。

int Sum = 0;
void setup( )
{
Serial.begin(9600);
}
void loop ( )
{
Sum++;  // on every loop, it adds 1 to the Sum int
Serial.println ( Sum);  // it prints the current state of the Sum variable
delay(1500);  // delay of 1.5 seconds
}

字符数据类型

char数据类型可以存储任意数量的字符集。声明为char的标识符成为字符变量。这些字面量用单引号引起来。

字符类型通常被称为整数类型。这是因为符号,字母等在内存中由关联的数字代码表示,而它们只是整数。

字符数据类型的大小最小为8位。我们可以将字节数据类型用于8位或1字节的无符号char数据类型。

例如,字符“ A”的ASCII值为65。

如果我们指定'A'+ 2,则ASCII值为67。

语法为:

char var = val;

哪里,

var =变量

val =分配给变量的值。

让我们看一个例子。

考虑下面的代码。

char myvariable = ' B ';
char myvariable = 66 ;  // both the value are equivalent

ASCII表如下所示:

浮动数据类型

具有小数部分和小数部分的数字被认为是浮点数。例如,4.567是一个浮点数。数字13是整数,而13.0是浮点数。由于其分辨率较高,因此使用小数来近似连续值和模拟值。

浮点数也可以以指数形式编写。该数字可以大至3.4028235E + 38,小至-3.4028235E + 38。浮点数据类型的大小为4字节或32位。

语法为:

float var = val;

哪里,

var =变量

val =分配给变量的值

让我们看一个例子。

考虑下面的代码。

int a ;
int b ;
float c ;
void setup ( )
{
Serial.begin (9600);
}
void loop ( )
{
a = 3 ;
b = a/2 ;  // b is an integer. It cannot hold fractions. The output will be 1.
c = (float) a / 2.0 ;  // c now contains 1.5.
// Here, we have to use 2.0 instead of 2.
}

注意:我们需要在数字上添加小数点。否则,它将被视为整数。例如,14.0被认为是浮点数,而14是整数。

浮点数也可以转换为整数。例如,

float a = 3.6 ;
int b = a + 0.6 ; // output = 4

双重数据类型

double数据类型还用于处理小数或浮点数。它占用的内存是float的两倍。它以更高的精度和范围存储浮点数。它代表双精度浮点数。

它在ATmega和UNO板上占用4字节,而在Arduino Due上占用8字节。

语法为:

double var = val;

哪里,

var =变量

val =分配给变量的值

Unsigned int数据类型

无符号int存储值最多2个字节或16位。它仅存储正值。无符号int数据类型的范围是0到65,535或0到((2 ^ 16)-1)。

Arduino Due存储4字节或32位的无符号数据值。

无符号和有符号数据类型之间的区别是符号位。 Arduino中的int类型是带符号的int。在16位数字中,用2的补码解释15位,而高位解释为正数或负数。如果高位为“ 1”,则视为负数。

语法为:

unsigned int var = val;

哪里,

var =变量

val =分配给变量的值

例如,

unsigned int pinofLED = 8;

短数据类型

简称是整数数据类型,存储两个字节或16位数据。

短数据类型的范围是-32768至32767或-(2 ^ 15)至((2 ^ 15)-1)。基于ARM和ATmega的Arduino通常存储2字节的数据值。

语法为:

short var = val;

哪里,

var =变量

val =分配给变量的值

例如,

short pinofLED = 8 ;

长数据类型

长数据类型被视为扩展大小变量,它存储4个字节(32位)。大小范围从-2,147,483,648到2,147,483,647。

在使用整数时,至少一个数字后应带有L,这将迫使该数字成为长数据类型。

语法为:

long var = val;

哪里,

var =变量

val =分配给变量的值

例如,

long speed = 186000L;

无符号长数据类型

无符号长数据类型也被视为扩展大小变量,它存储4个字节(32位)。它不像其他无符号数据类型一样存储负数,这使它们的大小范围从0到4,294,967,295或(2 ^ 32-1)。

语法为:

unsigned long var = val;

哪里,

var =变量

val =分配给变量的值

例如

unsigned long currenTtime;

字节

1个字节= 8位。

它被视为无符号数字,存储从0到255的值。

语法为:

byte var = val;

哪里,

var =变量

=分配给变量的值

例如,

byte c = 20;

它被认为是16位或2字节的无符号数,它存储从0到65535的值。

语法为:

word var = val;

哪里,

var =变量

val =分配给变量的值

例如,

word c = 2000;