整数データ型「Int」「Long」とは何かをシミュレーションで解説![コンピューターの原理基礎]
コンピューターは2進数の世界で動いています。2進数は1001101101みたいな感じで0と1の羅列ですね。
前回は1ビット/1バイトとは何かを説明しました。今回はその発展で、Int型とLong型をシミュレーターを交えて解説します!
目次
おさらい:「1バイト = 2進数8桁」
1バイト(1byte)は↓のように8つの箱(ビット)を組み合わせたデータになります。
8個の箱を組み合わせて、表せる数は\(2^8 = 256\)種類になります。0~255までの数ですね。
1ビットがデータの最小単位ではりますが、基本的にはこの1バイトを基本単位としてコンピューターのメモリサイズやストレージサイズは表されます!
整数型Int = 4バイト(32bit)で表される数字!
1バイトで表せる数字は0~255までです。これでは普通に使う分には小さすぎます。そこでコンピューターでよく使うデータ型Intでは、↓のように4つのバイトをまとめて、1つの数字を表すようにしています。
Intは↓のような特徴を持ちます。
- 1バイトを4つ組み合わせるので\(256^4=4,294,967,296\)パターンと大きな数を表せる
- 標準では0~4,294,967,295の数を表せる
- 符号付き(マイナスを含める場合)は-2,147,483,648~2,147,483,647の数を表せる
マイナスの数も表す場合は、その分下に寄せないといけないので、表せる最大値は半分になるわけです。このあたりの負数の表し方については別記事で解説します。
整数型Intで表せる数をシミュレーターで確認してみよう!
実際に4バイト(32bit)を使うIntがどのような状態になるのか、シミュレーターで確認してみましょう!(ビックエンディアンの場合でシミュレート。この用語については別記事で解説します)
- 各バイトを16進数の数で指定すると、それに対応したビットの状態が出力されます
- 同時に指定した4バイトで表される数値を10進数と16進数で表示します
シミュレーターからわかること
4つのバイトが組み合わさったことで、巨大な数が表せる!
これは当たり前のことですね。1バイトでは256パターンしか表せなかったのに、4バイトでは4,294,967,296パターンの数が表せます。バイト数を増やすと掛け算的に表せる数が伸びていくんです。
16進数は2桁単位で、各バイトの状態を表せている
これは16進数の解説でも述べたことです。10進数の数を見ても、各バイトの状態は分かりにくいですが、16進数であれば↓のように2桁ごとにバイトの状態がすぐにわかります!だからこそ16進数は便利なんですね!
整数型Long = 8バイト(64bit)で表される数字!
もう一つの整数型Longも考え方は同じです。ただ、より大きな数を表すために、長さが2倍になっています。
Longは↓のような特徴を持ちます。
- 1バイトを8つ組み合わせるので\(256^8=18,446,744,073,709,551,616\)パターンと大きな数を表せる
- 標準では0~18,446,744,073,709,551,615の数を表せる
- 符号付き(マイナスを含める場合)は-9,223,372,036,854,775,808~9,223,372,036,854,775,807の数を表せる
基本的にIntでは扱えないような、超巨大な数を扱うときに使います!
まとめ:「Int = 4バイト(32bit)で表される数字」「Long = 8バイト(64bit)で表される数字」
今回はコンピューターで一番基礎的なデータである整数型のIntとLongについて解説しました。結局は、Intは1バイトを4つ集めたもので、Longは1バイトを8つ集めたものです。それによって表せる数値の範囲が格段上がるわけです!
Long = 8バイト。\(256^8=18,446,744,073,709,551,616\)パターンの種類の数を表せる
基本的にはIntを使い、それでも足りない場合はLongを使うという認識でよいと思います!
- 「Int = 4バイト(32bit)で表される数字」「Long = 8バイト(64bit)で表される数字」
⇒「データ型」カテゴリ記事一覧
その他関連カテゴリ