okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

数値型データタイプ比較

🔢 主要プログラミング言語の数値型データタイプ比較

プログラミング言語ごとに、数値型のデータタイプ、サイズ、表現可能な範囲は異なります。言語を切り替える際やパフォーマンスを考慮する際に役立つよう、Python、C、JavaC#JavaScript、TypeScript、Go、Rust、Kotlinの代表的な数値型を以下に整理しました。


🐍 Python

種類 型名 サイズ 表現範囲
整数 int 4バイト -2³¹ ~ 2³¹ - 1
long 無制限 無制限
実数 float 8バイト 約 ±1.7×10³⁰⁸

💻 C

種類 型名 サイズ 表現範囲
整数 short 2バイト -2¹⁵ ~ 2¹⁵ - 1
int 4バイト -2³¹ ~ 2³¹ - 1
long 8バイト -2⁶³ ~ 2⁶³ - 1
char 1バイト -2⁷ ~ 2⁷ - 1
実数 float 4バイト ±3.4×10⁻³⁷ ~ ±3.4×10³⁸
double 8バイト ±1.7×10⁻³⁰⁷ ~ ±1.7×10³⁰⁸
long double 8バイト以上 ±1.2×10⁻⁴⁹³² ~ ±1.2×10⁴⁹³²

Java

種類 型名 サイズ 表現範囲
整数 byte 1バイト -128 ~ 127
short 2バイト -2¹⁵ ~ 2¹⁵ - 1
int 4バイト -2³¹ ~ 2³¹ - 1
long 8バイト -2⁶³ ~ 2⁶³ - 1
char 2バイト 0 ~ 2¹⁶(\u0000\uffff
実数 float 4バイト ±1.4×10⁻⁴⁵ ~ ±3.4×10³⁸
double 8バイト ±4.9×10⁻³²⁴ ~ ±1.7×10³⁰⁸

🟦 C

種類 型名 サイズ 表現範囲
整数 int 4バイト -2³¹ ~ 2³¹ - 1
long 8バイト -2⁶³ ~ 2⁶³ - 1
char 2バイト U+0000 ~ U+ffff
実数 float 4バイト ±1.5×10⁻⁴⁵ ~ ±3.4×10³⁸
double 8バイト ±5.0×10⁻³²⁴ ~ ±1.7×10³⁰⁸
decimal 16バイト ±1.0×10⁻²⁸ ~ ±7.9×10²⁸

🌐 JavaScript / TypeScript

種類 型名 サイズ 表現範囲
数値型 number 8バイト ±1.7976931348623157×10³⁰⁸
整数型 bigint 無制限 任意精度の整数
備考 numberIEEE-754形式で、整数も扱える

🟨 Go(Golang

種類 型名 サイズ 表現範囲
整数 int8 1バイト -128 ~ 127
int16 2バイト -32,768 ~ 32,767
int32 4バイト -2³¹ ~ 2³¹ - 1
int64 8バイト -2⁶³ ~ 2⁶³ - 1
実数 float32 4バイト ±1.5×10⁻⁴⁵ ~ ±3.4×10³⁸
float64 8バイト ±5.0×10⁻³²⁴ ~ ±1.7×10³⁰⁸

🦀 Rust

種類 型名 サイズ 表現範囲
整数 i8 1バイト -128 ~ 127
i16 2バイト -32,768 ~ 32,767
i32 4バイト -2³¹ ~ 2³¹ - 1
i64 8バイト -2⁶³ ~ 2⁶³ - 1
実数 f32 4バイト ±1.5×10⁻⁴⁵ ~ ±3.4×10³⁸
f64 8バイト ±5.0×10⁻³²⁴ ~ ±1.7×10³⁰⁸

💙 Kotlin

種類 型名 サイズ 表現範囲
整数 Byte 1バイト -128 ~ 127
Short 2バイト -2¹⁵ ~ 2¹⁵ - 1
Int 4バイト -2³¹ ~ 2³¹ - 1
Long 8バイト -2⁶³ ~ 2⁶³ - 1
実数 Float 4バイト ±1.4×10⁻⁴⁵ ~ ±3.4×10³⁸
Double 8バイト ±4.9×10⁻³²⁴ ~ ±1.7×10³⁰⁸
特殊 Char 2バイト Unicode文字(U+0000 ~ U+FFFF)

✅ まとめ

  • PythonJavaScriptは柔軟なデータ型を持つが、パフォーマンス面では注意が必要。
  • C/C++やRust、Goは明確なサイズと範囲を持つため、精密なメモリ制御が可能。
  • KotlinやJavaC#はモバイル・エンタープライズアプリに適したバランスの良い型設計。