Integer Constants

説明

整数定数は、123のようにスケッチの中で直接使われる数字です。デフォルトでは、これらの数値はintとして扱われますが、UとLの修飾子を使ってこれを変更することができます(後述)。

通常、整数定数はベース10(10進法)の整数として扱われますが、他のベースの数値を入力するために特別な記法(フォーマッタ)を使用することができます。

BASE EXAMPLE FORMATTER COMMENT

10 (decimal)

123

none

2 (binary)

0b1111011

leading “0b”

characters 0&1 valid

8 (octal)

0173

leading “0”

characters 0-7 valid

16 (hexadecimal)

0x7B

leading “0x”

characters 0-9, A-F, a-f valid

10進法(ベース10)
これは、皆さんがよく知っている常識的な数学です。他の接頭辞のない定数は10進法であるとみなされます。

プログラム例

n = 101; // 101と同じ 10進法 ((1 * 10^2) + (0 * 10^1) + 1)
バイナリー(ベース2
0と1の文字だけが有効です。

プログラム例

n = 0b101; // 5と同じ10進数 ((1 * 2^2) + (0 * 2^1) + 1)
8進法(ベース8)
0から7までの文字のみが有効です。8進法の値は、接頭辞「0」(ゼロ)で示されます。

プログラム例

n = 0101; // 65進数と同じ ((1 * 8^2) + (0 * 8^1) + 1)
定数の前に(意図せずに)先頭の0を入れてしまい、コンパイラが意図せずに定数を8進数として解釈してしまうことで、見つけにくいバグが発生する可能性があります。

16進法(ベース16)
有効な文字は0~9とA~Fで、Aは10、Bは11、Fまでは15となります。Aは10、Bは11、Fは15となります。なお、A-Fは大文字(A-F)でも小文字(a-f)でもよい。

プログラム例

n = 0x101; // 10進257桁と同じ ((1 * 16^2) + (0 * 16^1) + 1)
注意と警告
U & L フォーマッタ。

デフォルトでは、整数定数はintとして扱われ、それに伴う値の制限があります。整数定数を別のデータ型で指定するには、それに続いて次のように記述します。

a ‘u’ または ‘U’ を付けると、定数を強制的に符号なしのデータ形式にします。例 33u

a ‘l’ または ‘L’ は、定数を強制的に長いデータ形式にします。例:100000L

a ‘ul’ または ‘UL’ は、定数を強制的に符号なしの長い定数にします。例 32767UL