Représenter les nombres signés

En informatique, la manière dont les nombres sont représentés et stockés affecte directement la précision des calculs, la performance des programmes, et l'utilisation de la mémoire. Cet article explore les principes de base de la représentation des nombres dans les systèmes informatiques, y compris les nombres entiers (signés et non signés).

    5ttr 6ttr
  • Approfondissement

Entiers non signés

Les entiers non signés sont peut-être la forme la plus simple de représentation numérique en informatique. Comme leur nom l'indique, ils ne comportent pas de signe, ce qui signifie qu'ils ne peuvent représenter que des valeurs positives ou zéro. Dans un système où un entier est représenté sur 8 bits (un octet), on peut stocker des valeurs allant de 0 à 255.

La valeur maximale est calculée en utilisant la formule 2n - 1, où:

  • 2 représente la base 2
  • n est le nombre de bits.
  • -1 est utilisé pour prendre en compte le 0 (il y a 256 valeurs possibles dont le 0)

Par exemple, avec 8 bits, l'entier non signé maximal est 255.

Entiers signés

Les entiers signés, en revanche, peuvent représenter à la fois des valeurs positives et négatives. Le bit le plus à gauche, souvent appelé le bit de signe, détermine si le nombre est positif (0) ou négatif (1).

Exercice

Détermine si ces entiers signés sont positifs ou négatifs.

Valeur + ou -
1001
0110
1010
0001

Comme un bit est utilisé pour représenter le signe, nous avons un bit de moins pour représenter les quantités.

La valeur maximale positive d'un nombre signé est 2n-1 - 1, où:

  • 2 représente la base 2
  • n-1 est le nombre de bits utilisables pour représenter la quantité.
  • -1 est utilisé pour prendre en compte le 0 (il y a x valeurs possibles dont le 0)

Par exemple, avec 8 bits, l'entier signé maximal est 127 car il ne nous reste que 7 bits pour représenter la quantité.

Fais le calcul pour un nombre codé en 16 bits et en 32 bits.

La plus petite valeur négative d'un nombre signé est - 2n-1 , où n est le nombre de bits. Par exemple, avec 8 bits, l'entier signé maximal est -128.

Les nombres entiers positifs, y compris zéro, sont représentés normalement en binaire sans modification.

Les nombres entiers signés négatifs sont représentés le plus souvent avec le complément à deux.

Le complément à deux

Pour convertir un nombre en complément à deux, on suit ces étapes :

  1. Écrire le nombre en binaire.
  2. Inverser tous les bits (les 1 deviennent des 0, et vice versa).
  3. Ajouter 1 au résultat.

Lorsque l'on dit "ajouter un" dans le contexte du complément à deux, cela ne se limite pas nécessairement à changer le dernier bit de 0 en 1. On commence par le bit le plus à droite. L'ajout de 1 peut entraîner un report (carry) qui affecte plusieurs bits, pas seulement le dernier. C'est une addition en base 2.

💡 Pour faire plus simple: pour ajouter 1 en binaire, il suffit d'inverser tous les bits jusqu'au 1er 0 (y compris) en partant de la droite.

Ex:

1 0 0 0 1 1 1 1
1 0 0 1 0 0 0 0

Et si le nombre binaire se termine par 0, il suffit donc d'inverser ce 0.

Exemple 1: Conversion de -5 en binaire complément à deux (sur 8 bits) :

  1. L'écriture binaire positive de 5 est 00000101.
  2. On inverse les bits : 11111010.
  3. On ajoute un : 11111011.

Le résultat, 11111011, représente -5 en complément à deux sur 8 bits.

Exemple 2 : Conversion de -6 en binaire complément à deux (sur 8 bits) :

  1. L'écriture binaire positive de 6 est 00000110.
  2. On inverse les bits : 11111001.
  3. On ajoute un : 11111010.

Lorsque l'on ajoute un à 11111001, on commence par le bit le plus à droite. L'ajout de 1 à 1 provoque un report :

Le bit le plus à droite devient 0 (1 + 1 = 10 en binaire, donc on retient 1). Le report se déplace d'un bit vers la gauche, ajoutant 1 à 0, ce qui donne 1 sans autre report.

Le résultat, 11111010, représente -6 en complément à deux sur 8 bits.

Exercices

Calcule le complément à 2 des valeurs suivantes:

Binaire Complément à 2
0001
0110
0010
0000
0111

Pour vérifier ou retrouver un nombre négatif :

  1. Soustrayez un du nombre binaire.
  2. Inversez tous les bits.

Ces étapes permettent des opérations mathématiques simples et cohérentes, même avec des nombres négatifs. Ainsi, sur 8 bits, les valeurs possibles vont de -128 à 127.

Exercices

Voici les exercices regroupés par type de conversion pour les nombres signés en binaire (complément à deux) sur 4 bits.

Exercices de conversion de décimal en binaire (complément à deux)

  • Convertis le nombre décimal -3 en binaire sur 4 bits.
  • Convertis le nombre décimal 7 en binaire sur 4 bits.
  • Convertis le nombre décimal -6 en binaire sur 4 bits.
  • Convertis le nombre décimal -2 en binaire sur 4 bits.
  • Convertis le nombre décimal 4 en binaire sur 4 bits.
  • Convertis le nombre décimal 0 en binaire sur 4 bits.

Exercices de conversion de binaire signé en décimal (complément à deux)

  • Convertis le nombre binaire 1001 en décimal.
  • Convertis le nombre binaire 1101 en décimal.
  • Convertis le nombre binaire 0111 en décimal.
  • Convertis le nombre binaire 0010 en décimal.
  • Convertis le nombre binaire 1010 en décimal.

Ces exercices sont conçus pour aider à pratiquer et comprendre comment les nombres positifs et négatifs sont représentés en binaire sur 4 bits en utilisant le complément à deux, ce qui est crucial pour la programmation et le traitement de données numériques dans les systèmes informatiques.

Corrections

Conversion de décimal en binaire

  1. -3 en binaire sur 4 bits :

    • Écriture positive de 3 : 0011
    • Inversion des bits : 1100
    • Ajout de 1 : 1101
  2. 7 en binaire sur 4 bits :

    • 7 est déjà positif, donc il reste 0111.
  3. -6 en binaire sur 4 bits :

    • Écriture positive de 6 : 0110
    • Inversion des bits : 1001
    • Ajout de 1 : 1010
  4. -2 en binaire sur 4 bits :

    • Écriture positive de 2 : 0010
    • Inversion des bits : 1101
    • Ajout de 1 : 1110
  5. 4 en binaire sur 4 bits :

    • 4 est déjà positif, donc il reste 0100.
  6. 0 en binaire sur 4 bits :

    • 0 est déjà neutre, donc il reste 0000.

Conversion de binaire en décimal

  1. 1001 : -7 (inverse les bits de 0110 et ajoute 1).
  2. 1101 : -3 (inverse les bits de 0010 et ajoute 1).
  3. 0111 : 7 (pas d'inversion nécessaire, nombre positif).
  4. 0010 : 2 (pas d'inversion nécessaire, nombre positif).
  5. 1010 : -6 (inverse les bits de 0101 et ajoute 1).