Codage des nombres relatifs

Pour coder en binaire les nombres relatifs, il faut réserver une partie des codes binaires disponibles (\(2^n\) pour un codage sur \(n\) bits) aux entiers positifs, et l’autre partie aux nombres négatifs.

Le code complément à 2

Le code « complément à 2 » (2 pour « base 2 »), répartit les nombres de la manière suivante :

complement_a_2_2

Exercice :

  • Représenter sur un cercle l’ensemble des nombres relatifs que l’on peut coder en binaire sur 3 bits.
  • En observant les codes des nombres positifs et négatifs, quel intérêt présente ce codage ?
  • Décrire les « opérations » à réaliser sur la représentation binaire d’un nombre permettant d’obtenir son opposé.

Pour coder un nombre négatif, il faut complémenter le code binaire naturel de sa valeur absolue et lui ajouter 1.

\(\bbox[10px,border:2px solid black]{\color{#aaa}\Large{-a = \overline{a}+1}}\)

ATTENTION
le « + » ici représente une somme (et non l’opérateur binaire OU !) : addition de deux nombres

tandis que l’opérateur NON, noté \(\overline{a}\) est une opération binaire (« inversion » de chaque bit du nombre)

Exemple :

complement_a_2le code binaire de l’entier naturel 22 sur un format 8 bits est 0001 0110

pour obtenir son code complément à 2 (pour coder le nombre relatif -22) on commence par complémenter son code binaire naturel : \( \color{#aaa}{\overline{0001\,0110} = 1110\,1001}\)

puis on ajoute 1

 

Remarques :

  • Le nombre de bits doit être défini dans la règle : un nombre négatif n’aura pas le même code sur 8bits et 12bits

exemple : -3710 = 1101 10112 = 1111 1101 10112

  • le chiffre binaire de poids fort représente le signe du nombre : 0 = nombre positif ; 1 = nombre négatif

Activité :

Convertir les nombres décimaux suivants en code complément à 2 :

Recommencer …

Recommencer …

Recommencer …

Convertir en écriture décimale les nombres binaires (code complément à 2) suivants :

Recommencer …

Recommencer …

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *