この章では、変数の種類や取り扱いの詳細について学びます。特に、変数の型の違いや、数値の範囲、signed・unsigned、long型の違いに注目します。
変数は、宣言と同時に値を入れることができます。これを初期化といいます。
int x = 5; // 初期化
x = 10; // 再代入(値の上書き)
整数型にはさまざまなバリエーションがあります。それぞれに特徴があり、用途によって使い分けます。
| 型名 | 説明 | 符号 | 表現できる範囲(代表例) | サイズ(バイト) | 備考 |
|---|---|---|---|---|---|
| (signed) int | 符号付き整数 | ± | -2,147,483,648 ~ 2,147,483,647 | 4 | 標準的な整数型(省略可) |
| unsigned int | 符号なし整数 | +のみ | 0 ~ 4,294,967,295 | 4 | int より広い正の範囲 |
| (signed) short | 小さめの整数(符号付き) | ± | -32,768 ~ 32,767 | 2 | 省メモリ時に使用 |
| unsigned short | 小さめの正の整数 | +のみ | 0 ~ 65,535 | 2 | 正数のみ、範囲広め |
| (signed) long | 大きめの整数(符号付き) | ± | 約 -9京 ~ 9京 | 8(環境依存) | 大きな整数用 |
| unsigned long | 大きめの正の整数 | +のみ | 0 ~ 約18京 | 8(環境依存) | さらに広い範囲 |
| (signed) char | 符号付き1バイト文字 | ± | -128 ~ 127 | 1 | ASCII文字や小さな数値に |
| unsigned char | 符号なし文字型 | +のみ | 0 ~ 255 | 1 | バイト操作に便利 |
※ カッコ内の
signedは省略可能です。int型はコンパイラが最も効率よく扱えるサイズ。特別な理由がなければintを使うのが望ましい。
整数型には「符号付き(signed)」と「符号なし(unsigned)」があります。
signed int a = -10; // 負の数もOK(通常はこちらが使われる)
unsigned int b = 10; // 正の数だけ
signed は省略可能で、int と書けば signed int と同じ意味になります。
以下は、代表的な整数型の範囲を数直線で表したイメージです。
int: |------------|-------------|
-2,147,483,648 0 2,147,483,647
unsigned int: |-----------------------|
0 4,294,967,295
long: |-----------------略-------------------|--------------------------略-----------------|
-9,223,372,036,854,775,808 0 9,223,372,036,854,775,807
int を使えば問題ありません。unsigned や long を検討します。short。Q1. int 型と unsigned int 型の違いとして正しいものはどれか。
ア. unsigned int は文字列しか使えない
イ. int は整数だが unsigned int は実数になる
ウ. unsigned int は正の整数しか使えない
エ. int は範囲が狭くて使えない
解説を表示
正解:ウ
unsigned int は負の数を扱えず、0以上の整数だけを表現できます。
Q2. 次のコードで、変数 b に入る値として正しいものはどれか。
int a = -10;
unsigned int b = a;
ア. -10
イ. 10
ウ. 不定(エラー)
エ. 非常に大きな整数
解説を表示
正解:エ
負の値を unsigned に代入すると、2の補数として非常に大きな正の整数に変換されます。
Q3. 次のうち、省略可能なキーワードはどれか。
ア. int
イ. char
ウ. signed
エ. long
解説を表示
正解:ウ
signed は明示してもよいですが、通常は int とだけ書いて省略されます。
Q4. long 型が適している場面として最もふさわしいものはどれか。
ア. 数値が0〜100の範囲に収まる場合
イ. 計算速度を最優先する場合
ウ. 小数点を扱いたい場合
エ. 非常に大きな整数を扱う必要がある場合
解説を表示
正解:エ
long は int より広い範囲の整数を扱うため、大きな数値が必要な場面に適しています。
int はもっともよく使われる整数型。signed は符号付き、unsigned は非負の数のみ。