説明
整数は、数字を保存するための主要なデータタイプです。
Arduino Uno(およびその他のATmegaベースのボード)では、intは16ビット(2バイト)の値を格納します。これにより、-32,768~32,767(最小値-2^15、最大値(2^15)-1)の範囲になります。Arduino DueおよびSAMDベースのボード(MKR1000やZeroなど)では、intは32ビット(4バイト)の値を格納します。これにより、-2,147,483,648~2,147,483,647(最小値は-2^31、最大値は(2^31)-1)の範囲となります。
intは、2の補数演算と呼ばれる手法で負の数を格納します。最上位のビット(「符号」ビットと呼ばれることもあります)は、数値が負の数であることを示します。残りのビットは反転され、1が加えられます。
Arduinoは負の数の処理を代行してくれるので、期待通りの方法で算術演算が透過的に行われます。ただし、ビットシフト右演算子(>>)の扱いには、予想外の複雑さがあります。
構文
int var = val;
var: 変数名。
val: その変数に割り当てる値。
プログラム例
このコードでは、「countUp」という整数を作成し、最初は0が設定されています。この変数は、ループごとに1つずつ増えていき、シリアルモニタに表示されます。
int countUp = 0; //creates a variable integer called 'countUp' void setup() { Serial.begin(9600); // use the serial port to print the number } void loop() { countUp++; //Adds 1 to the countUp int on every loop Serial.println(countUp); // prints out the current state of countUp delay(1000); }
注意点と警告
符号付き変数がその最大または最小容量を超えると、オーバーフローします。オーバーフローの結果は予測できないので、避ける必要があります。オーバーフローの典型的な症状は、変数が最大容量から最小容量へ、あるいはその逆へと「ロールオーバー」することですが、必ずしもそうなるとは限りません。このような動作をさせたい場合は、unsigned int を使用します