entry: numerical data types in C

This commit is contained in:
Thomas Bishop 2025-12-05 19:35:54 +00:00
parent 57c270d299
commit d91e1652ba

View file

@ -0,0 +1,55 @@
---
tags:
- C
---
# Numerical data types in C
## Summary
| Data type | Memory | Examples |
| --------------- | ------- | -------------- |
| `int` | 4 bytes | `0`, `-3`, `9` |
| `short int` | 2 bytes | `0`, `-3`, `9` |
| `long int` | 4 bytes | `0`, `-3`, `9` |
| `long long int` | 8 bytes | `0`, `-3`, `9` |
| `float` | 4 bytes | `2.1882` |
| `double` | 8 bytes | `2.18829801` |
## `int`
An `int` can hold a signed or unsigned value or 0 but it cannot hold a decimal
value.
On most modern systems, an `int` typically allocates 4 bytes (32 bits) of
memory. This is not always the case however and some systems may allocate only 2
bytes.
$2^32 = 4294967296$ thus for signed ints this provides a range -2,147,483,648 to
2,147,483,647. For unsigned ints this provides a range 0 to 4,294,967,295.
## `short int`
The same properties of `int` but a smaller bit allocation - 2 bytes (16bits).
$2^16 = 65536$ thus for signed short ints this provides a range -32,768 to
32,767. For unsigned short ints this provides a range 0 - 65, 536.
## `long int`
Basically the same as `int` but you are guarenteed 4 bytes, independent of
system.
## `long long int`
An extra-long `int` allocated 8 bytes (64bits).
## `float`
Use to hold decimal values. Allocated 4 bytes (32 bits) of memory. Holds less
precision than a `double` but uses less memory.
## `double`
Use to hold decimal values. Allocated 8 bytes (32 bits) of memory. Provides
greater precision than a `float` but uses more memory.