🔢

整数型の値の範囲

2024/08/03に公開

導入

整数は無限に存在するが、コンピュータで表現できる範囲は限られている

トランジスタについては以下
https://zenn.dev/417yr/articles/c6b0dce4804874

コンピュータで10進数の数値を扱う仕組みについては以下ご確認ください。
https://zenn.dev/417yr/articles/6b37e09679393e

型の種類

整数型の範囲を超える数を扱う際、一般的にlong型を用いる

  • 整数型
    • 符号付き整数型(signed integer data type)
      • int型と呼ばれることが多い
    • 符号なし整数型(unsigned 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)

参考

https://www.cc.kyoto-su.ac.jp/~yamada/programming/bit.html

https://programming-place.net/ppp/contents/glossary/ha/signed_integer_type.html

http://www.infonet.co.jp/ueyama/ip/binary/signedbin.html

Discussion