int

説明

整数は、数字を保存するための主要なデータタイプです。

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 を使用します

タイトルとURLをコピーしました