KDOC 144: データ型によるサイズの違いを確かめる

この文書のステータス

  • 作成
    • 2024-05-01 貴島
  • レビュー
    • 2024-05-06 貴島

概要

データ型によって値を保存するのに使うサイズが違う、というのを概念でしか把握していなかった。アセンブリで本当にそうなのか確かめる。

違い

int型

↓2つめの宣言でアドレスが4バイト進んでるので、int型は4バイトの長さがある。

↓つまり、格納できる最大の値がわかる。オーバーフローさせてみる。2つめの宣言はゼロが入っている。

  • 4バイト=32ビット=2^32=4294967296 -> 表現できる値の幅は4294967296。0はじまりなので0~4294967295

double型

↓2つめの宣言でアドレスが8バイト進んでいるので、double型は8バイトの長さがある。

  • 名前の通り、int型の倍である8バイトの長さがある

float型

↓2つめの宣言でアドレスが4バイト進んでいるので、float型は4バイトの長さがある。

char型

↓2つめの宣言でアドレスが1バイト進んでいるので、char型は1バイトの長さがある。

  • 1バイト=8ビット=2^8=256 -> 表現できる値の幅は256。0はじまりなので0~255
  • 2つめの宣言ではオーバーフローしてゼロが入っている

関連