🔢
整数型の値の範囲
導入
整数は無限に存在するが、コンピュータで表現できる範囲は限られている
トランジスタについては以下
コンピュータで10進数の数値を扱う仕組みについては以下ご確認ください。
型の種類
整数型の範囲を超える数を扱う際、一般的にlong型を用いる
- 整数型
- 符号付き整数型(signed integer data type)
- int型と呼ばれることが多い
- 符号なし整数型(unsigned integer data type)
- 符号付き整数型(signed integer data type)
- long 型
- 符号付きlong型(long)
- 符号なしlong型(unsigned long)
32bitの整数型の場合
32bitの整数型ということは、
2の32乗(4,294,967,296)通り表せる ということが確定
↓
符号なし整数型だろうが符号付き整数型だろうが、
下の図だと8マス分の長さが確定したということ
- 符号なし整数型
- 扱える範囲:0 ~ 4,294,967,295(2の32乗から-1)
- 符号付き整数型
- 扱える範囲:-2,147,483,648(-2の31乗) ~ 2,147,483,647(2の31乗から-1)
- 符号の識別のために1bit使用されるので32-1で31乗になってます
補足
符号付き整数型の値の範囲についての補足です。
負の数もあるので最大値が符号なし整数型の半分になる(範囲が8マス分であることは変わらない)
↓
4,294,967,295 ÷ 2 = 2,147,483,647.5
↓
小数になってしまった
↓
整数型なので、整数にするために、左へ0.5(1マス分)ずらすイメージ
(範囲が8マス分であることは変わらない)
↓
-2,147,483,648(-2の31乗) ~ 2,147,483,647(2の31乗から-1)
参考
Discussion