Entiers
Représentation des nombres entiers en informatique
Représentation binaire
Les ordinateurs utilisent le système binaire (base 2) pour représenter les nombres. Chaque chiffre binaire (bit) peut être 0 ou 1.
Exemple :
- Décimal 13 → Binaire 1101
Entiers non signés
Les entiers non signés ne représentent que des valeurs positives ou nulles.
| Bits | Plage |
|---|---|
| 8 bits | 0 à 255 |
| 16 bits | 0 à 65 535 |
| 32 bits | 0 à 4 294 967 295 |
Entiers signés
Les entiers signés peuvent représenter des valeurs positives et négatives.
Bit de signe
Le bit le plus significatif indique le signe : 0 pour positif, 1 pour négatif.
Complément à un
Inverse tous les bits du nombre positif pour obtenir le négatif.
Exemple :
- +5 → 00000101
- -5 → 11111010
Complément à deux
Inverse tous les bits et ajoute 1.
Exemple :
- +5 → 00000101
- -5 → 11111011
| Bits | Plage signée |
|---|---|
| 8 bits | [−128, 127] |
| 16 bits | [−32768, 32767] |
| 32 bits | [−2147483648, 2147483647] |
Arithmétique modulaire
Les opérations sur les entiers en informatique utilisent l'arithmétique modulaire, où les résultats sont calculés modulo 2^n.
Exemple :
- 255 + 1 (sur 8 bits) → 0
Types de données entiers en programmation
Les langages de programmation proposent différents types entiers.
| Langage | Type | Taille (bits) | Signé |
|---|---|---|---|
| C | int | 32 | Oui |
| C | unsigned int | 32 | Non |
| Python | int | Illimitée | Oui |
| Java | byte | 8 | Oui |
| Java | int | 32 | Oui |
Débordement en binaire
Définition
Le débordement se produit lorsqu'une opération dépasse la capacité de représentation.
Exemple
- 127 + 1 (sur 8 bits signés) → -128
Détection
Certains processeurs définissent des indicateurs (flags) pour signaler le débordement.
Représentation sur plus de 8 bits
Tailles et plages
| Taille | Plage signée | Plage non signée |
|---|---|---|
| 8 bits | -128 à 127 | 0 à 255 |
| 16 bits | -32 768 à 32 767 | 0 à 65 535 |
| 32 bits | -2^31 à 2^31-1 | 0 à 2^32-1 |
| 64 bits | -2^63 à 2^63-1 | 0 à 2^64-1 |
Endianness
L'endianness définit l'ordre des octets :
- Big-endian : octet le plus significatif en premier
- Little-endian : octet le moins significatif en premier
Exemple :
- 0x12345678 → Big-endian : 12 34 56 78 ; Little-endian : 78 56 34 12