int(整型)
[数据类型]
描述
整数是用于存储数字的主要数据类型。
在 Arduino Uno(以及其他基于 ATmega 的板子)上,一个 int 存储一个 16 位(2 字节)的值。这产生了 -32,768 到 32,767 的数字范围(最小值为 -215,最大值为 (215) - 1)。在 Arduino Due 和基于 SAMD 的板子上(如 MKR1000 和 Zero),一个 int 存储一个 32 位(4 字节)的值。这产生了 -2,147,483,648 到 2,147,483,647 的数字范围(最小值为 -231,最大值为 (231) - 1)。
int 使用一种称为补码的技术来存储负数。最高的位称为"符号"位,标记数字的正负(1 为负)。其余的位被取反并加 1(例如 -1 :1 000000000000001 - > 1 111111111111110 -> 1 111111111111111 )。
Arduino 负责为您处理负数,这样算术运算就能以预期的方式透明地进行。然而,处理按位右移运算符(>>)时可能会出现意想不到的复杂性。
语法
int var = val;
参数:
var: 变量名。
val: 要分配给该变量的值。
示例代码
这段代码创建了一个名为 'countUp' 的整数,初始值设为数字 0。该变量在每次循环中增加 1,并在串行监视器上显示。
int countUp = 0; //创建一个名为'countUp'的整数变量
void setup() {
Serial.begin(9600); // 使用串口打印数字
}
void loop() {
countUp++; //每次循环中countUp加1
Serial.println(countUp); //打印出countUp的当前值
delay(1000);
}
注意事项和警告
当有符号变量超过其最大或最小容量时,它们会溢出。溢出的结果是不可预测的,因此应该避免这种情况。溢出的一个典型症状是变量从其最大容量“滚动”到其最小值,或反之亦然,但并非总是如此。如果您想要这种行为,请使用 unsigned int。
例如对于 16 位整数:
int x;
x = -32768;
x = x - 1; // x now contains 32,767 - rolls over in neg. direction
x = 32767;
x = x + 1; // x now contains -32,768 - rolls over
扩展阅读
|