Numérique et Sciences Informatiques > Préparation aux Épreuves du Baccalauréat NSI > Révisions Thématiques > Représentation des données
Représentation des données : Exemples et exercices pratiques
Consolidez vos connaissances sur la représentation des données avec des exemples concrets et des exercices pratiques pour vous préparer au Baccalauréat NSI.
Conversion binaire - décimal
La conversion entre les systèmes binaires et décimaux est une compétence essentielle. Voici comment procéder :
Binaire vers Décimal : Multipliez chaque bit par sa puissance de 2 correspondante (en commençant par 20 pour le bit le plus à droite) et additionnez les résultats.
Exemple : 101102 = (1 * 24) + (0 * 23) + (1 * 22) + (1 * 21) + (0 * 20) = 16 + 0 + 4 + 2 + 0 = 2210
Décimal vers Binaire : Divisez le nombre décimal par 2 et notez le reste (0 ou 1). Continuez à diviser le quotient par 2 jusqu'à obtenir un quotient de 0. Les restes, lus de bas en haut, forment le nombre binaire.
Exemple : 2510
Donc, 2510 = 110012
Manipulation de nombres flottants : Erreurs d'arrondi
En raison de la représentation finie des nombres flottants, des erreurs d'arrondi peuvent se produire lors des calculs.
Exemple : En Python, essayez d'additionner 0.1 et 0.2 :
Le résultat n'est pas exactement 0.3. Cela est dû à la manière dont les nombres 0.1 et 0.2 sont représentés en binaire (ils ne peuvent pas être représentés de manière exacte).>>> 0.1 + 0.2
0.30000000000000004
Pour éviter ces problèmes, il est important de :abs(a - b) < tolerance
Exercice : Décodage de caractères Unicode
Supposons que vous ayez le code Unicode U+00E9. Quel est le caractère correspondant ?
U+00E9 correspond à la lettre 'é' (e accent aigu).
Vous pouvez utiliser une table Unicode ou un outil de conversion en ligne pour trouver le caractère correspondant à un code Unicode donné.
Essayez avec U+20AC. Vous trouverez que cela correspond au symbole de l'euro (€).
Représentation d'une image en niveaux de gris
Une image en niveaux de gris peut être représentée par une matrice de valeurs, où chaque valeur représente l'intensité du gris (0 pour le noir, 255 pour le blanc).
Exemple : Une image de 3x3 pixels pourrait être représentée par le tableau suivant :
Chaque valeur représente l'intensité du gris pour le pixel correspondant. Vous pouvez manipuler ces valeurs pour modifier l'image (par exemple, augmenter le contraste ou inverser les couleurs).[[0, 50, 100],
[150, 200, 255],
[200, 100, 50]]
Exercice : Compression d'une chaîne de caractères (Run-Length Encoding)
Le Run-Length Encoding (RLE) est une technique de compression simple qui consiste à remplacer des séquences de caractères identiques par un seul caractère suivi du nombre de répétitions.
Exemple : La chaîne 'AAABBBCCCDD' peut être compressée en 'A3B3C3D2'.
Exercice : Écrivez un algorithme qui prend une chaîne de caractères en entrée et renvoie sa version compressée en utilisant RLE.
Solution possible (en pseudo-code) :fonction compresser(chaine):
resultat = ""
compteur = 1
pour i de 1 à longueur(chaine):
si chaine[i] == chaine[i-1]:
compteur = compteur + 1
sinon:
resultat = resultat + chaine[i-1] + compteur
compteur = 1
resultat = resultat + chaine[longueur(chaine) - 1] + compteur // Ajout du dernier groupe
retourner resultat
Ce qu'il faut retenir
FAQ
-
Comment puis-je minimiser les erreurs d'arrondi lors des calculs avec des nombres flottants ?
Vous pouvez minimiser les erreurs d'arrondi en utilisant des fonctions d'arrondi, en évitant les comparaisons directes d'égalité et en étant conscient des limitations de la représentation des nombres flottants. -
Quand est-il approprié d'utiliser la compression RLE ?
La compression RLE est appropriée lorsque les données contiennent de longues séquences de caractères identiques. Elle est particulièrement efficace pour les images avec des zones de couleurs uniformes.