COURS ET TP

Sommaire

Retour vers la page d'accueil



Numération  Retourner au sommaire
Prenons le nombre décimal x=123,456
Décomposer x en utilisant des puissances de 10.
Trouver un algorithme qui permettrait de trouver les chiffres de la partie entière et ceux de la partie décimale.
Combien de nombres entiers positifs peut-on écrire avec 3 chiffres décimaux? (000-001 etc..)
Chercher une fonction qui permettrait d'avoir le nombre de décimales nécessaires pour écrire un entier
x est écrit en base 10 et ce système de numération de position nécessite 10 chiffres.
Maintenant prenons 2 chiffres seulement : 0 et 1 (appelés bits) et considérons x=(101,011)2
Reprendre les questions précédentes en prenant la base 2 au lieu de 10.
En prenant la base 16 quels symboles pourrait-on prendre?

Ecrire 100;101;111;10,1;10,111 en base 10 (les nombres étant écrits en base 2 )
Ecrire 20;5;20,5;2,1 en base 2 (les nombres étant écrits en base 10)
Quels sont les nombres entiers positifs qui peuvent être écrits avec 8 bits
Trouver une formule qui donne le nombre de bits nécessaires pour écrire un entier positif quand il est écrit en décimal.

Vocabulaire  Retourner au sommaire
Le système binaire est le système de numération de base 2.
Il est constitué de 2 symboles , 0 et 1 , appelés bits
Un octet ou byte est constitué de 8 bits ou de 2 hexa (pourquoi?) et un mot de plusieurs octets.
Ko(kilo octets) signifie 1000 (quelle puissance de 10?) octets et Kio(kibi octets) 1024(quelle puissance de 2?) octets
Exécuter la commande cmd.exe puis ipconfig /all et regarder les adresses physique et ipv4 de votre carte réseau.
Quelles sont les bases utilisées? ecrire ces adresses en binaire. Pourquoi 255 est-il un maximum en décimal pour un des nombres de l'IPv4?

Opérations  Retourner au sommaire
Effectuer les opérations suivantes en base 10 : 20+5;20-5;20*5;20/5 et les refaire en binaire
(c'est la même chose sauf que la retenue est obtenue à 2 : 1+1=2 en décimal s'écrit 1+1=10 en binaire)
Trouver une autre méthode pour représenter en binaire 2,5;3,2(idée 2,5=5/2 et 3,2=16/5))

Représentation des entiers sur n bits  Retourner au sommaire
Prenons n=8 bits : quels sont les entiers positifs qui peuvent être représentés?
On cherche à représenter des entiers positifs ou négatifs (signés) avec 8 bits . Que proposez-vous par exemple pour représenter -9?
Le bit de poids fort sera réservé au signe et il reste donc 7 bits.
Trouvons une repésentation qui permettra de coder 0 d'une seule manière (0000 0000)et pour laquelle x+(-x)=0 (par exemple -9 + 9 =0 avec la représentation binaire.
Cette méthode de représentation s'appelle le complément à 2 qui est le complément à 1 auquel on ajoute 1 en binaire.
Représenter avec 8 bits 1;-1 2;-2;127;128
Que représentent les nombres suivants écrits en binaire 1111 1111 (FF en hexa) 1000 1010(8A en hexa).
Quels sont les entiers signés qui peuvent être représentés en binaire?
En java le type int est codé avec 4 octets. Quel est le plus grand entier(max) que l'on peut ainsi codé?
Avec javas' cool écrire int x=max +1;print(x); Que se passe t-il?

Représentation des "réels" sur n bits  Retourner au sommaire
Ecrire 12,5 et -12,5 sous la forme (signe)a*10i où a est compris entre 0 et 1.
Si on normalise l'écriture d'un décimal ainsi , quels sont les renseignements utiles pour retrouver ces nombres? ( signe , mantisse et exposant)
Maintenant procédons de la même manière mais à partir de l'écriture en binaire de 12,5.
Puis on écrit sous la forme (signe)a*2i où a est de la forme 1,... par exemple 101,01 =+1,0101*22
Codons le signe sur 1 bit , l'exposant sur 8 et la mantisse sur 23 (32 bits en tout).Comment pourriez-vous coder sur 32 bits les 2 nombres précédents.
Quels sont les inconvénients de ce cette méthode?
La norme IEEE 754 :elle consiste à utiliser un biais de 127 pour un codage sur 32 bits(pourquoi 127?)
On ajoute 127 à i et on note le résultat E , on note s le signe (0 pour + et 1 pour -) et M la mantisse qui ne contient pas le 1 devant la virgule car il est implicite (la mantisse de 101,01 =+1,0101*22
est 0101 0000...000 sur 23 bits
La représentation sur 32 bits d'un réèl avec cette norme sera la juxtaposition des bits de s E puis M
(5,25)10=(101,01)2 donc s=0 i=(2)10=00000010 E=12910=100000012 et M=0101 0000 0000 0000 0000 000
Ce qui donne 0 10000001 0101 0000 0000 0000 0000 000 pour représenter 5,25 selon IEEE 754.
A l'inverse pour retrouver x en binaire à partir de sa représentation on écrit x=((-1)s*1,M*2E-127)2
Ensuite on convertit x en décimal.
On peut aussi convertir E et M en décimal puis faire l'opération en décimal:M=1/4+1/16=0.3125 E=129 donc x=+1.3125*22=5.25
Norme IEEE754 sur Wikipédia
A vous de jouer :
Représenter selon la norme IEE754 -40,1
Retrouver le nombre en décimal : 0 01111011 1100 0000 0000 0000 000

Les caractères  Retourner au sommaire
Les caractères ASCII (plus exactement ascii étendu ansi) sont codés sur 7 bits , on rajoute 0 à gauche pour en avoir 8 soit un octet ou on utilise ce bit libre comme bit de controle.(combien de caractères ainsi peuvent être codés)
Bien sûr cela ne suffit pas, pourquoi?
Unicode:historique et intérêt.Quel est le lien entre ASCII et UFT8 ?
En java un caractère est codé sur 2 octets (caractère unicode UCS-2).
Ecrire un programme qui donne la valeur décimale d'un caractère en java.

Les images  Retourner au sommaire
Une image est un tableau n*m de pixels.(n*m est la taille de l'image).
Chaque pixel est une suite de bits(mot) donnant des renseignements sur la couleur ou le niveau de gris en noir et blanc
Par exemple le codage RVB se fait sur 24 bits soit 8 bits pour chaque couleur(rouge vert bleue) , ce qui nous donne facilement le nombre de couleurs possibles.(combien?)
En fait les photosites des capteurs d'un appareil photo ne sont sensibles qu'à l'intensité de la lumière ce qui correspond au niveau de gris , d'où la nécessité d'ajouter un système pour obtenir de la couleur.
On peut facilement calculer le nombre d'octets nécessaires par Mégapixels.
"Travailler"" sur ces mots de 3 octets permet de modifier l'apparence de l'image.
En utilisant le logiciel Hexedit à télécharger puis à installer , copiez et ouvrez cette image
Pour comprendre le fonctionnement de Hexedit utilisez ce document
Il s'agit alors de trouver des renseignements sur la photo (format , taille , nombre de bits par pixel etc..) puis de la transformer (négatif par exemple).

Approfondissements  Retourner au sommaire
Certains nombres dans la norme IEEE 754 sont non normalisés comme 0 ? Détailler .
Quels sont les nombres normalisés qui peuvent être représentés en simple précision (32 bits)
Ecrire un programme qui convertit en binaire avec 8 bits un entier positif
Voilà un exemple de programme qui code un entier signé sur n bits
ou encore un autre qui convertit un décimal en binaire.
Voilà un exemple de programme qui donne les nombres premiers inférieurs à un entier donné

Exercices  Retourner au sommaire
Ecrire un programme qui convertit un caractère ou une chaîne de caractères en binaire
Ecrire un programme qui convertit un réèl positif avec 8 bits pour la partie entière et 8 pour la partie décimale
Expliquer le standart unicode et la norme UTF8 pour encoder(coder) les caratères (Unicode) et dire quel est l'intérêt de Unicode.
Expliquer pourquoi certaines pages web ne s'affichent pas correctement au niveau des caractères.
Donner le principe (simplifié) de compression des images dans le format jpeg.
Donner des formats d'images non compressées ou avec compression sans perte et détailler un de ceux là.
Que signifient résolution et dimension réelle d'une image.
Chercher et expliquer la correction d'erreurs par : bit de parité; parité croisée LRC; code de Hamming; CRC
Chercher et expliquer le codage préfixe et l'algorithme de compression sans perte de Huffman