Numbers
Here’s a complete list of numeric data types (both signed and unsigned) with their bit sizes, memory usage, and value ranges.
🧮 1️⃣ Integer Types
4-bit nibble
Unsigned
4
0.5
0
15
4-bit nibble
Signed
4
0.5
-8
+7
8-bit (byte / int8 / char)
Unsigned
8
1
0
255
8-bit (byte / int8 / char)
Signed
8
1
-128
+127
16-bit (short / int16 / smallint)
Unsigned
16
2
0
65,535
16-bit (short / int16 / smallint)
Signed
16
2
-32,768
+32,767
32-bit (int / int32 / long in C)
Unsigned
32
4
0
4,294,967,295
32-bit (int / int32)
Signed
32
4
-2,147,483,648
+2,147,483,647
64-bit (bigint / long / int64)
Unsigned
64
8
0
18,446,744,073,709,551,615 (≈1.8×10¹⁹)
64-bit (bigint / int64)
Signed
64
8
-9,223,372,036,854,775,808
+9,223,372,036,854,775,807
128-bit (int128, not standard in C/Python)
Unsigned
128
16
0
3.4×10³⁸
128-bit (int128)
Signed
128
16
-1.7×10³⁸
+1.7×10³⁸
🔢 2️⃣ Floating-Point Types (IEEE 754 Standard)
Half precision (float16)
16
2
±6.10×10⁴
~3 decimal digits
Single precision (float32)
32
4
±3.40×10³⁸
~7 decimal digits
Double precision (float64)
64
8
±1.80×10³⁰⁸
~15–16 decimal digits
Quad precision (float128)
128
16
±1.20×10⁴⁹³²
~33–34 decimal digits
🧠 3️⃣ Decimal / Arbitrary Precision (in databases or languages like Python)
Decimal(p, s)
Fixed precision decimal (e.g., in SQL)
Variable
Depends on precision p
Usually 1–17 bytes
Python int
Arbitrary precision
Unlimited
Limited by available memory
Dynamic allocation
BigDecimal (Java)
Arbitrary precision
Variable
Depends on precision
Dynamic allocation
⚙️ 4️⃣ Other Variants
bool / boolean
True/False values
1 (usually stored as 8 bits)
1
0 or 1
bfloat16
ML applications (reduced precision float16)
16
2
Similar range as float32 but ~2–3 digits precision
float8 (experimental)
ML accelerators (e.g., NVIDIA Hopper)
8
1
Range varies; ~1–2 digits precision
🧩 Memory Summary
1
0.125
bool
4
0.5
nibble
8
1
byte, uint8, int8
16
2
short, float16
32
4
int32, float32
64
8
int64, double
128
16
int128, float128
🔢 Numeric Data Types — Ranges, Sizes, and Memory
Below is a complete reference for integer, floating-point, and special numeric types, including their bit width, memory usage, and value ranges.
🧮 Integer Types
4-bit nibble
Unsigned
4
0.5
0
15
4-bit nibble
Signed
4
0.5
−8
+7
8-bit (byte / int8)
Unsigned
8
1
0
255
8-bit (byte / int8)
Signed
8
1
−128
+127
16-bit (short / int16 / smallint)
Unsigned
16
2
0
65,535
16-bit (short / int16 / smallint)
Signed
16
2
−32,768
+32,767
32-bit (int / int32)
Unsigned
32
4
0
4,294,967,295
32-bit (int / int32)
Signed
32
4
−2,147,483,648
+2,147,483,647
64-bit (bigint / int64)
Unsigned
64
8
0
18,446,744,073,709,551,615
64-bit (bigint / int64)
Signed
64
8
−9,223,372,036,854,775,808
+9,223,372,036,854,775,807
128-bit (int128)
Unsigned
128
16
0
≈3.4×10³⁸
128-bit (int128)
Signed
128
16
≈−1.7×10³⁸
≈+1.7×10³⁸
🌊 Floating-Point Types (IEEE 754)
Half precision (float16)
16
2
±6.10×10⁴
~3 digits
Single precision (float32)
32
4
±3.40×10³⁸
~7 digits
Double precision (float64)
64
8
±1.80×10³⁰⁸
~15–16 digits
Quad precision (float128)
128
16
±1.20×10⁴⁹³²
~33–34 digits
💰 Decimal & Arbitrary Precision Types
Decimal(p, s)
Fixed precision decimal (used in SQL)
Variable
Depends on precision p
1–17 bytes (typical)
Python int
Arbitrary-precision integer
Dynamic
Limited by memory
Grows dynamically
Java BigDecimal
Arbitrary precision decimal
Dynamic
Depends on precision
Grows dynamically
⚙️ Other Variants & Special Types
bool / boolean
True/False
1 (bit, often stored as 1 byte)
1
0 or 1
bfloat16
ML accelerators (TPUs, GPUs)
16
2
Same range as float32, ~2–3 digits precision
float8 (experimental)
AI hardware (e.g., NVIDIA Hopper)
8
1
Range and precision vary (~1–2 digits)
🧠 Memory Summary
1
0.125
bool
4
0.5
nibble
8
1
byte, int8
16
2
short, float16
32
4
int32, float32
64
8
int64, double
128
16
int128, float128
💡 Notes
Signed vs Unsigned: Signed types reserve one bit for sign representation (two’s complement). Unsigned types use the full bit range for positive values.
Floating-point precision: Higher bit width → more accurate representation of decimals, not necessarily a wider range.
Arbitrary-precision numbers: Used when fixed bit-width numbers can overflow (e.g., cryptography, high-precision finance).
Last updated