在Arduino里使用简单的原始类型(变量)


Arduino有不同类型的变量可以有效地表示值。您想知道如何选择和使用这些Arduino数据类型。

解决方案

虽然int(整数的缩写)数据类型是Arduino应用程序中遇到的数值的最常见选择,但是您可以使用表2-1和2-2来确定适合您的应用程序所期望的值范围的数据类型。

表2-1显示了8位板的数据类型,表2-2显示了32位板的数据类型。


表2-1. 适用于Uno等8位板的Arduino数据类型

值类型

字节

范围

用途

int

2

-32768到32767

表示正负整数值。

unsigned int

2

0到65535

仅表示正值;否则与int类似。

long

4

-2147483648到2147483647

表示极大范围的正负值。

unsigned long

4

4294967295

表示非常大的正值范围。

float

4

3.4028235E+38到-3.4028235E+38

表示带有小数的数字;用于近似实际测量。

double

4

与float相同

在Arduino中,double只是另一个float的名称。

bool

1

false(0)或true(1)

表示真和假值。

char

1

-128到127

表示单个字符。也可以表示-128到127之间的带符号数字值。

byte

1

0到255

类似于char,但用于无符号值。

其他类型

String 表示字符序列,通常用于存储文本。

void 仅用于函数声明中,表示没有返回值。


表2-2. 类似于Zero和101的32位Arduino板的数据类型

值类型

字节

范围

用途

short int

2

-32768 到 32767

与8位板上的int相同。

unsigned short int

2

0 到 65535

与8位板上的unsigned int相同。

int

4

-2147483648 到 2147483647

表示正负整数值。

unsigned int

4

0 到 4294967295

仅表示正值;否则与int类似。

long

4

-2147483648 到 2147483647

与int相同。

unsigned long

4

4294967295

与unsigned int相同。

float

4

±3.4028235E+38

表示带有小数的数字;用于近似实际测量。

double

8

±1.7976931348623158E+308

32位板的范围和精度比8位板大得多。

bool

1

false(0)或true(1)

表示真和假值。

char

1

-128 到 127

表示单个字符。也可以表示-128到127之间的带符号值。

byte

1

0 到 255

类似于char,但用于无符号值。

除非需要最大的性能或内存效率,在数值不超出表2-1所示范围且不需要处理小数值时,使用int声明的变量适用于数字值。大部分官方的Arduino示例代码将数字变量声明为int。但有时候需要选择特定适用于应用程序的类型。如果调用返回int以外的值的库函数,这一点尤其重要。例如,Recipe 2.10和其他示例中所示的millis函数返回一个unsigned long值。如果你在8位板上使用int来存储该函数的结果,你不会收到警告,但会得到错误的结果,因为int不足以容纳long的最大值。相反,一旦达到32767,它将回滚到-32768。如果你试图将long装入unsigned int中,则在超过unsigned int的最大值(65535)之后,你将回滚到零。

有时你需要负数,有时你不需要,因此数字类型有两种类型:有符号和无符号。 无符号值始终为正。没有 unsigned 关键字的变量是有符号的,因此它们可以表示负数和正数值。 使用无符号值的一个原因是当有符号值的范围无法适应变量的范围时(无符号变量的容量是有符号变量的两倍)。 程序员选择使用无符号类型的另一个原因是清楚地告诉读取代码的人,期望的值永远不会是负数。

在32位板上,int类型需要的字节数是8位板上的两倍,然而,32位板上的内存通常很充足,因此大多数针对8位板的代码也可以在32位板上运行。一个罕见的例外是假设int类型总是使用2个字节在内存中表示,而这是好的编写代码和库不应该这样做的。bool(布尔)类型有两个可能的值:true或false。它们通常用于存储表示是/否条件的值。

您还可以在内置常量HIGH和LOW的位置上使用bool类型,这些常量用于修改(使用digitalWrite())或确定(使用digitalRead())数字I / O引脚的状态。例如,digitalWrite(LED_BUILTIN,HIGH)语句将向内置LED连接的引脚传输电源。使用LOW而不是HIGH将关闭电源。您可以使用true或false代替HIGH或LOW,并且在您在网上找到的代码中很可能会发现此类示例。您还将看到使用1和0的示例(1等同于true,0等同于false)。但是,假设常量的基础值是不好的习惯,因此您应始终使用常量HIGH和LOW。几乎不可能遇到HIGH等于false的Arduino变体。但是,您将遇到许多其他常量,它们大多数都没有这样明确和明显的与其基础值的关系。

展开阅读全文

页面更新:2024-03-16

标签:变量   类型   负数   常量   示例   数值   字节   数据类型   符号   原始   简单   数字

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top