正在Arduino里利用简洁的本始范例(变量)_正在通
在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变体。,您将遇到许多其他常量,它们大多数都没有这样明确和明显的与其基础值的关系。
奇闻怪事
- 黎姿老公马廷强前妻 黎姿老公马廷强前妻是谁
- 紫禁城闹鬼是真的吗 紫禁城闹鬼是怎么回事
- 80年黄河透明棺材事件 80年代黄河透明棺材始末
- 51区外星人录像是真的吗 51区外星人真的存在吗
- 姜潮麦迪娜恋爱过程 姜潮麦迪娜怎么认识的
- 根达亚文明大概离现在多久 根达亚文明距今多少
- 赤塔事件真的还是假的 赤塔事件到底怎么回事
- 百慕大三角在哪个国家 百慕大三角在哪个国家的
- 邓超出轨安以轩:邓超出轨安以轩是不是真的
- 中国十大闹鬼最凶的地方 中国十大闹鬼最凶的地
- 湘西鬼结婚事件:湘西鬼结婚事件真假
- 中国昆仑山10大灵异绝密档案 中国昆仑山10大灵异
- 李维嘉的父亲是谁 李维嘉父母是哪里人
- 朱秀华事件是不是真的 朱秀华事件的真相是什么
- 太湖冤魂:太湖冤魂事件真假
- 爪哇虎和东北虎谁厉害 爪哇虎和东北虎谁厉害一