TP 1 : 1 Calculs en binaire, octal et hexadécimal

Transcription

TP 1 : 1 Calculs en binaire, octal et hexadécimal
Univ. Lille 1 - Licence Informatique 2ème année
2015-2016
Codage de l’information
TP 1 :
Objectifs du TP
Ce TP a pour but
1. de découvrir quelques opérations logiques sur les nombres
2. et quelques formats de fichiers.
Outils utilisés
— un éditeur hexadécimal (hexedit)
— un visualiseur d’images
— une calculatrice
— un éditeur de textes
— le logiciel (LibreOffice)
1
Calculs en binaire, octal et hexadécimal
Vous allez utiliser dans cette partie une calculatrice capable d’effectuer des calculs en décimal,
binaire, octal et hexadécimal. Cette calculatrice est celle fournie dans l’environnement Gnome
utilisé dans les salles de TP. Elle se nomme gnome-calculator.
1.1
1.1.1
Démarrer et configurer gnome-calculator
Lancer l’exécution de gnome-calculator
Deux possibilités
1. depuis un terminal, taper la commande
> gnome - calculator &
(le > représente l’invite (ou prompt) de la ligne de commande, il ne faut donc pas taper ce
caractère.)
2. à l’aide de la souris, passer par le menu
Applications > Accessoires > Calculatrice
1.1.2
Configurer gnome-calculator
Assurez-vous d’être bien dans le mode Programmation afin de bénéficier des possibilités de
calcul dans les bases binaire, octale, décimale et hexadécimale. Pour cela utiliser la barre de menu
du logiciel pour choisir l’option
Mode programmation
Cette option sélectionnée, vous devez avoir les fonctionnalités de calcul dans différentes bases,
avec les opérateurs associés, comme le montre la figure 1.
1
Figure 1 – Vue sur la calculatrice gnome-calculator
1.2
Choix de la base
Exercice 0-1 Conversions
Question 1 Quelles sont les écritures binaires et hexadécimales des entiers 1, 10, 100, 1000 ?
Question 2 Quelle sont les écritures décimales et hexadécimales des entiers dont la représentation binaire
est 1, 10, 100, 1000 ?
Exercice 0-2 Représentations et tailles
Question 1 Pour chacune des valeurs de t comprises entre 1 et 6, recherchez le plus grand entier (en
décimal) qui peut s’écrire avec t chiffres (symboles) en base 16.
Question 2 Reprenez la question précédente pour le plus grand entier qui peut s’écrire avec t chiffres en
bases octale et binaire.
2
2
Examen de fichiers avec un éditeur hexadécimal
hexedit est un éditeur hexadécimal. Il permet d’éditer (c’est-à-dire visualiser et modifier) n’importe quel fichier en mode hexadécimal.
2.1
Trois fichiers contenant un texte
Récupérez l’archive cigale.zip et décompressez-la ! Elle contient trois fichiers contenant le
même texte :
1. cigale1.txt
2. cigale2.txt
3. cigale1.odt
Exercice 0-3
Question 1 Récupérez ces fichiers dans votre répertoire personnel.
Question 2 Ouvrez ces fichiers à l’aide d’un éditeur de textes. Voyez-vous une différence entre ces fichiers ?
Question 3 Ouvrez ces trois fichiers à l’aide du logiciel LibreOffice (cherchez dans le menu). Voyez-vous
une différence ?
Question 4 Quelle est la taille en octets de ces fichiers ? Pour le savoir, dans un terminal tapez la commande
ls -l.
Question 5 Ouvrez les trois fichiers avec un éditeur hexadécimal.
Pour cela dans un terminal tapez la commande hexedit suivie du nom du fichier à éditer. Par exemple
> hexedit cigale1 . txt
Q 5–1 Reconnaissez-vous le texte contenu dans chacun des trois fichiers ?
Q 5–2 Quelle différence y a-t-il entre les fichiers cigale1.txt et cigale2.txt ?
2.2
Deux fichiers contenant une image
Voici deux fichiers contenant la même image :
1. adage.bmp au format bitmap
2. adage.gif au format gif.
Exercice 0-4
Question 1 Récupérez ces fichiers dans votre répertoire personnel.
3
Question 2 Visualisez chacune de ces images à l’aide de la commande display. Pour cela dans un terminal,
tapez la commande
> display adage . bmp &
Voyez-vous une différence entre les deux images à l’écran ?
Question 3 Quelle est la taille de chacun des deux fichiers ? Quel est le format le plus économique en
taille ?
Question 4 Visualisez le contenu de chacun des deux fichiers à l’aide de hexedit. Que constatez-vous ?
Question 5 Faîtes une copie du fichier adage.bmp sous le nom adage2.bmp. Éditez le contenu de cette copie
avec hexedit. Modifiez au moins une vingtaine d’octets consécutifs de votre choix à partir de l’octet 03C016 .
La valeur donnée aux octets devra être très différente de la valeur d’origine . Enregistrez la modification
(en appuyant sur F2) et visualisez le résultat avec la commande display. Qu’obervez-vous ?
Question 6 Faîtes le même travail avec le fichier adage.gif. Que se passe-t-il ? Tentative d’explication. . .
Question 7 Faîtes à nouveau une copie du fichier adage.bmp sous le nom adage3.bmp. Ouvrez le fichier
adage3.bmp avec hexedit et rendez-vous à l’octet 3C016 . Vous devez observer qu’à partir de cette position
la quasi totalité des octets possèdent une même valeur que nous appellerons j.
Cette valeur correspond à la couleur de fond dans l’image. En modifiant un seul octet dans le fichier,
nous allons être capable de modifier la couleur de fond dans l’image. Le format BMP définit une « palette »
de couleurs qui sont ensuite utilisées dans l’image. La valeur j fait référence à une couleur de la palette.
Cette palette est définie à partir de l’octet 3616 dans le fichier BMP. Dans la palette, chaque couleur est
définie sur 4 octets.
Fichier bitmap
Premier octet de la palette
Un octet
...
0x32
.
.
.
0x3C0
Couleur 0
...
j
j
j
j
j
j
j
j
j
j
j
j
Couleur 1
j
j
j
j
j
j
j
j
j
j
Couleur 2
j
j
j
j
j
j
j
j
j
j
Figure 2 – Schéma de portions d’un fichier bitmap présentant la palette de couleurs (en haut) et
le contenu du fichier à modifier (en bas).
À quelle position devez-vous aller pour modifier la couleur correspondant à j ? Allez à cette position et
4
modifiez l’octet qui s’y trouve (ou l’un des deux suivants). Enregistrez la modification et visualisez l’image
pour vérifier que le changement est effectif.
5