Entiers

De knowledge
Aller à la navigation Aller à la recherche

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