Représentation des données: types et valeurs de base

1) Écriture d’un entier positif dans une base b ⩾ 2

Testez les scripts python ci-dessous dans votre IDE favori.

Rappels : Python et les entiers naturels en base 10,2,16

Combien dénombrez-vous d’animaux ?

L’attribut alt de cette image est vide, son nom de fichier est animaux.png.

Notre réponse est 18 en représentation décimale.

On peut préciser si nécessaire : (18)10

On peut écrire des représentations différentes du même nombre d’animaux : (18)10= (00010010)2= (12)16= (22)8

Avec la calculatrice de Windows 10 en mode programmeur. l’écriture binaire a été complétée avec des « zéros » à gauche pour avoir un codage sur 8 bits.

Pour représenter un nombre n en base 10, on doit utiliser 10 caractères
différents pour représenter les 10 premiers entiers : 0 1 2 3 4 5 6 7 8 9,
et décomposer les entiers suivants à l’aide des puissances de 10 successives.
Par exemple, 19 représente le nombre 1 × 101 + 9 × 100

En base 2 (binaire) on a 2 symboles 0 et 1.

En base 16 (hexadécimal) on 16 symboles : 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F

La valeur de A est 10 et F est 15.

Un entier naturel est un entier positif ou nul. Pour coder des nombres entiers naturels compris entre 0 et 255, il nous suffira de 8 bits (un octet) . D’une manière générale un codage sur n bits pourra permettre de représenter des nombres entiers naturels compris entre 0 et 2n-1 .

Chacun des nombres 0 ou 1 de l’écriture binaire est appelé bit.

Il est nécessaire de fixer la taille de cette suite finie de bits pour coder les entiers naturels en machine.

Lorsque les nombres sont représentés par plusieurs octets, la machine doit fixer l’ordre en mémoire de ces octets. On parle de boutisme ou endianness en anglais. La mémoire des ordinateurs est divisées en blocs de 8 bits (soit un octet). Un processeur 64 bits par exemple manipule des paquets de 8 octets, soit 64 bits .

Dans une base b, on utilise b symboles distincts pour représenter les nombres. La valeur de chaque symbole doit être strictement inférieur à b.

Effectuer cette addition de deux nombres binaires codés sur 8 bits sans faire de conversion.Vérifier le résultat obtenu en effectuant les conversions.

   (00110011)2+ (00011100)2

Recommencer avec cette nouvelle addition.

(10110011)2+ (01011100 )2

codage des couleurs en hexadécimal

corrige

2) Représentation binaire d’un entier relatif

Le complément à deux est une technique qui consiste à inverser tout les bits de la représentation binaire d’un nombre entier puis à rajouter 1 pour obtenir la représentation binaire de l’entier relatif opposé.

  • Ecrire 45 en binaire
  • Inverser les bits
  • Ajouter 1
  • Additionner en binaire le nombre obtenu et son complément à 2
  • Conclure

Avec la méthode du complément à 2 pour un codage sur n bits on dispose d’une représentations des entiers relatifs dans l’intervalle [-2n-1,2n-1-1]

Le complément à 2 de 0 sert à représenter -2n-1

Ainsi sur 8 bits On dispose des représentations des entiers compris entre -128 et 127

intérêt du complément à deux
le signe d’un entier en machine est connu grâce à son bit de poids fort
unicité de la représentation de nombre compris entre -2n-1 et 2n-1-1 ;
l’addition des entiers relatifs en complément à deux utilise le même
algorithme que pour les entiers naturels.

Comment est représenté -128 codé sur 8 bits

3) Représentation approximative des nombres réels

Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle ( les deux parties sont séparées par une virgule )

Il existe deux méthodes pour représenter les nombre réel :

1) Virgule fixe ou la position de la virgule est fixe

2) Virgule flottante : la position de la virgule change ( dynamique )

Dans la représentation en virgule fixe les valeurs sont limitées et nous n’avons pas une grande précision .

En python les nombres réels sont représentés par des nombres en virgule flottante de type float.

écrire -3,3125 en binaire
écrire 0,25 , 1/3 puis 0.1 en binaire

Laisser un commentaire

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