Vous êtes sur la page 1sur 3

TD Encodages NSI

Entiers
Exercice 1
En utilisant le complément à 2, représentez -15 et -89 sur 8 bits

Exercice 2
Représentez en complément à 2, sur 8 bits, l’entier 4, puis l’entier -5.
Additionnez ces 2 nombres et vérifiez que vous obtenez bien -1

Exercice 3
Donnez le complément à 2 de 65 (représentation sur 1 octet)
Calculer à nouveau le complément à 2 du résultat.
Que constate t-on ?

Exercice 4
Quel est le plus petit entier négatif que l’on peut représenter sur 16 bits ?
Quel est le plus grand entier positif que l’on peut représenter sur 16 bits ?

Nombres flottants
Exercice 5
Coder en binaire les nombres suivants :
75 101 59 61
a) 100,1011 b) 1100,101 c) 1110,11 d) 11110,1
16 8 4 2
Exercice 6
Trouver la représentation décimale de 100,0012 et 1100,112 4,125 et 12,75

Exercice 7
Trouver la représentation binaire du nombre décimal 1,25 1,01

Exercice 8
Déterminez la représentation binaire du nombre 0,333

Exercice 9 (utilisez le cours)


Soit le nombre flottant stocké au format simple précision :
0 01111011 10011001100110011001100.
Trouvez la représentation en base 10 de ce nombre.
0,099999994 c’est ainsi qu’on a codé 0,1
Exercice 10 (maths)
Montrer que tout nombre dyadique est un décimal.

1
TD Encodages NSI
Python
Exercice 10
Ouvrez votre environnement Python, tapez dans la console : 0,3 + 0,6, et commentez le résultat.
Exercice 11
La fonction type permet de connaître le type d’un objet :
integer → entier relatif
float → nombre flottant
string → chaîne de caractères
1/ Tapez dans la console
2/ Comment imposer à Python le type d’un objet : integer, float ou string ?
• En utilisant des symboles comme ' ' ou " " ou : etc...
• En utilisant des fonctions comme int ou …. (faire une recherche)
Exercice 12
Une adresse IP version4 est composée de 4 octets séparés par un point. Pour la lecture humaine, ces
octets sont convertis en décimal. Exemple : 10 . 254 . 12 . 1
En utilisant la fonction int(), convertir en décimal les octets de ces adresses IP :
11000000 . 10101000 . 00000010 . 00000001 192 . 168 . 2 . 1
00001100 . 11101000 . 00101101 . 11111110 12 . 232 . 45 . 254
NB : La fonction int( n, b) permet de convertir en décimal,
avec n le nombre au format chaîne de caractère, et b la base dans laquelle est écrite ce
nombre n.
Exercice 13
Une adresse IP version6 est composée de 8 groupes de 2 octets séparés par le signe « : » Par défaut,
les nombres sont au format hexadécimal.
Exemple : 2001:0db8:0000:85a3:0000:0000:ac1f:8001
En utilisant la fonction int(), convertir en décimal l’adresse IP version6 ci-dessus
8193 : 3512 : 0 : 34211 : 0 : 44063 : 32769
Exercice 14
Tapez le code suivant dans un fichier et exécutez-le

Lire la documentation sur la fonction input et trouver la cause de l’erreur.

Modifier la ligne 1 afin de corriger l’erreur ?


Exercice 15
Utiliser les fonctions python ord() bin(), encode() et decode() pour répondre aux questions :
- quels sont les codes décimaux du ‘R’ et du ‘Y’ en Unicode (points de code) ?
- quel est le code binaire du point (.) en Unicode
- donner l’encodage du caractère é en UTF-8
- donner la séquence d’octets en hexadécimal correspondant à l’encodage UTF-8 du mot
« élégance »

2
TD Encodages NSI
Exercice 16
Tester les expressions suivantes sur Python : >>> 3 + 10**(-16) == 3
>>> 3 + 10**(-15) == 3
Quel est la signification de ce résultat ?

Problème 1:

1/ Convertir 8364 en binaire

2/ Donner l’encodage UTF-8 du caractère « € ». Vérifier en utilisant l’interprète Python.

3/ Donner un algorithme permettant, à partir de la valeur décimale d’un caractère, de trouver le


nombre d’octets nécessaires pour son codage en UTF-8

Problème 2 :
Il s’agit de trouver le plus petit nombre (flottant) x tel que x + 1 == x
Écrire un programme permettant de calculer ce nombre, sachant qu’il s’agit d’une puissance de 2.

Vous aimerez peut-être aussi