📅  最后修改于: 2020-12-27 03:17:03             🧑  作者: Mango
数据类型用于标识数据类型和用于处理数据的关联功能。它用于声明函数和变量,以确定位模式和存储空间。
下面列出了我们将在Arduino中使用的数据类型:
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 =分配给变量的值
无符号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;