Binaire et représentation des données

Découvre comment les ordinateurs transforment les nombres, le texte, les images et le son en bits. Effectue des conversions entre décimal, binaire et hexadécimal ; stocke des nombres entiers sous forme d’entiers non signés et en complément à deux ; code des nombres réels en virgule flottante selon IEEE 754 et découvre pourquoi 0,1 + 0,2 n’est pas exactement égal à 0,3 ; encode du texte avec ASCII et Unicode (UTF-8) ; calcule l’espace de stockage nécessaire aux images, aux vidéos et au son ; et découvre comment la compression sans perte et avec perte réduit la taille des fichiers.

DébutantUnité 2 sur 7 de la formation Formation : Informatique : données, algorithmes, Internet et IA

Ce que tu vas apprendre

  1. Explique comment des groupes de bits codent l’information et convertis des nombres entiers entre les systèmes décimal, binaire et hexadécimal.
    • Explique les bits, les octets et le nombre de valeurs qu’un groupe de bits peut représenter
      Décris les bits et les octets, détermine le nombre de configurations données par un nombre de bits et lis correctement les unités de stockage et de débit.
    • Convertis des nombres entiers du décimal au binaire et inversement
      Utilise les valeurs de position pour lire des nombres binaires et convertis des entiers décimaux en binaire à l’aide de deux méthodes fiables.
    • Utilise l’hexadécimal comme écriture abrégée du binaire
      Effectue des conversions entre hexadécimal, binaire et décimal, et explique pourquoi les programmeurs écrivent les octets, les couleurs et les adresses en hexadécimal.
  2. Stocke des entiers positifs ou nuls et négatifs sur un nombre fixe de bits, détermine leurs plages de valeurs et explique ce qui se produit lorsqu’une valeur ne peut pas être représentée.
    • Stocke des entiers non signés et détermine leur plage de valeurs
      Représente des entiers positifs ou nuls sur un nombre fixe de bits, choisis un nombre de bits adapté aux valeurs et explique le dépassement de capacité.
    • Représente des entiers négatifs en complément à deux
      Lis et écris des entiers négatifs en complément à deux, détermine la plage de valeurs signées pour un nombre de bits donné et compare-la à celle de la représentation en signe et valeur absolue.
  3. Écris des fractions en binaire, code et décode des nombres dans les formats à virgule flottante IEEE 754, et explique les limites de leur plage de valeurs et de leur précision.
    • Écris des fractions en binaire et comprends pourquoi certaines ne peuvent pas être représentées exactement
      Effectue des conversions entre fractions décimales et binaires, reconnais les fractions binaires périodiques comme 0,1 et décris les nombres à virgule fixe.
    • Code et décode des nombres à virgule flottante selon la norme IEEE 754
      Utilise la notation scientifique binaire et les champs de signe, d’exposant et de fraction des formats IEEE 754 en simple et double précision.
    • Explique la plage de valeurs, la précision et l’erreur d’arrondi en virgule flottante
      Explique pourquoi les valeurs à virgule flottante sont des approximations, prévois des effets courants comme celui de 0,1 + 0,2 et choisis un type de nombre adapté.
  4. Explique comment les caractères deviennent des nombres et des octets, utilise ASCII et Unicode, et prévois le nombre d’octets occupés par un texte UTF-8.
    • Encode du texte à l’aide de codes de caractères et du code ASCII
      Utilise une table de codes de caractères pour transformer du texte en nombres et en bits, lis l’organisation de la table ASCII et explique ses limites.
    • Utilise les points de code Unicode et l’encodage UTF-8
      Distingue un point de code Unicode des octets qui le codent, encode des caractères en UTF-8 et explique les textes illisibles et le nombre d’octets.
  5. Décris comment les images deviennent des pixels et des valeurs de couleur, calcule l’espace de stockage nécessaire et explique comment le son est échantillonné sous forme de nombres.
    • Représente des images à l’aide de pixels et de valeurs de couleur
      Décris les images matricielles, la profondeur de couleur, les codes couleur RVB et hexadécimaux, les palettes et la transparence.
    • Calcule la taille des images et compare les images matricielles aux images vectorielles
      Calcule l’espace de stockage nécessaire à une image ou à une vidéo non compressée, explique ce que les fichiers ajoutent et décris les images vectorielles.
    • Numérise du son par échantillonnage et quantification
      Explique l’échantillonnage, la fréquence d’échantillonnage et la profondeur de quantification, applique la règle d’échantillonnage et calcule la taille d’un fichier audio non compressé.
  6. Explique comment la compression réduit la taille des données, applique des méthodes simples sans perte et choisis entre des formats avec et sans perte.
    • Explique la compression sans perte à l’aide du codage par plages et d’autres codes
      Applique le codage par plages et les codes de longueur variable, décris les méthodes par dictionnaire et explique pourquoi aucune méthode ne réduit la taille de tous les fichiers.
    • Explique la compression avec perte et choisis un format adapté
      Décris comment la compression avec perte élimine les détails les moins perceptibles, évalue le compromis entre qualité et taille, et choisis des formats adaptés à différents types de données.

Binaire et représentation des données : cours

6 chapitres

1

Compte les configurations et change de base

Un ordinateur peut utiliser le même groupe de bits pour un nombre, une lettre ou une partie d’image. C’est l’interprétation qui donne son sens à la configuration. Avant de travailler sur ces interprétations, tu dois compter les configurations disponibles et lire les unités utilisées pour le stockage et le transfert. Les systèmes décimal, binaire et hexadécimal offrent ensuite trois façons d’écrire un nombre entier, chacune avec des valeurs de position qui rendent les conversions prévisibles.

1.1 Bits, octets et unités de stockage

Un bit prend l’une de deux valeurs : 0 ou 1. Le matériel peut distinguer de façon fiable deux états physiques, comme une tension haute ou basse, des directions d’aimantation opposées, ou la présence et l’absence de lumière. Les chiffres écrits décrivent ces états ; ils n’ont pas besoin d’apparaître littéralement dans un appareil.

Compter les configurations

Chaque nouveau bit double les possibilités. Deux bits donnent quatre configurations : 00, 01, 10 et 11. Trois bits en donnent huit. En général, n bits donnent 2n configurations. Un demi-octet comporte 4 bits et un octet en comporte 8 : un octet donne donc 256 configurations. L’octet est aussi la plus petite unité de mémoire adressable sur la plupart des ordinateurs modernes.

Pour coder un ensemble de valeurs, choisis assez de configurations pour chacune d’elles. Pour 26 lettres, quatre bits ne donnent que 16 configurations ; cinq bits en donnent 32 et suffisent donc. Pour 1 000 valeurs, neuf bits en donnent 512 et dix en donnent 1 024. Des configurations peuvent rester inutilisées. Avec 16 bits, on dispose de 65 536 configurations, et avec 32 bits, de 4 294 967 296.

Le nombre de configurations diffère du plus grand nombre non signé. Quatre bits donnent 16 configurations, mais le décompte commence à zéro : les valeurs vont donc de 0 à 15. Une configuration est déjà utilisée pour zéro.

Pour trouver systématiquement le nombre minimal de bits, compare les puissances successives de deux au nombre de possibilités nécessaires. Arrête-toi à la première puissance suffisamment grande. Pour N valeurs distinctes, le critère est 2n≥N. L’égalité exacte est permise : huit possibilités tiennent sur trois bits, tandis qu’une neuvième nécessite un quatrième bit. Un nombre de bits plus grand convient aussi, mais ce n’est plus le minimum.

Donner un sens à la configuration

L’octet 01000001 peut représenter l’entier 65, la lettre ASCII « A » ou une intensité de canal de couleur de 65 sur une échelle de 0 à 255. Les bits seuls ne déterminent pas la lecture à choisir. Le type de données d’un programme et le format du fichier déterminent leur interprétation.

Lire les unités de stockage

Deux familles de préfixes sont courantes :

Stockage décimalOctetsStockage binaireOctets
1 kB1 0001 KiB1 024
1 MB1 000 0001 MiB1 048 576
1 GB1 000 000 0001 GiB1 073 741 824

Les préfixes décimaux sont des préfixes SI ; les préfixes binaires sont des préfixes CEI. À chaque échelon décimal, l’unité est multipliée par 1 000 ; à chaque échelon binaire, elle est multipliée par 1 024. Pour exprimer des octets dans une unité plus grande, divise par le nombre d’octets de cette unité.

Un disque indiqué comme ayant une capacité de 500 GB contient 500 000 000 000 d’octets. La division par 1 073 741 824 donne environ 465,66 GiB. Un logiciel peut noter cette quantité binaire « GB », ce qui donne l’impression que la capacité affichée est plus petite. Le changement d’unité en lui-même n’a supprimé aucun octet ; le formatage et les fichiers système sont d’autres questions.

Distinguer les bits des octets

Un b minuscule désigne un bit ; un B majuscule désigne un octet. Une connexion à 100 Mbit/s transfère au maximum 100 millions de bits par seconde. La division par 8 donne 12,5 millions d’octets par seconde, soit 12,5 MB/s, avant la surcharge protocolaire. Lire ce débit comme 100 MB/s revient à le multiplier par huit.

Points clés

  • Un octet comporte 8 bits ; un demi-octet en comporte 4.
  • Chaque bit supplémentaire double le nombre de configurations.
  • Choisis le plus petit nombre de bits dont les configurations disponibles couvrent toutes les valeurs.
  • Un type de données ou un encodage donne son sens à une configuration de bits.
  • Les préfixes de stockage SI utilisent des puissances de 10 ; les préfixes CEI utilisent des puissances de 2.
  • Divise un débit en bits par 8 pour obtenir le débit correspondant en octets.

1.2 Valeurs de position en binaire et conversion

Le binaire est un système de numération de position : la valeur d’un chiffre dépend de sa place. Le décimal utilise dix chiffres et des puissances de 10. Le binaire utilise deux chiffres, 0 et 1, et des puissances de 2. Pour lire un nombre binaire, on additionne les valeurs des positions contenant un 1.

Lire un entier binaire

De droite à gauche, les valeurs de position sont 1, 2, 4, 8, 16, 32, 64, 128, et ainsi de suite. Chacune est le double de la précédente, car 20=1, 21=2 et 22=4.

Pour 1011012, aligne les six bits sur leurs valeurs de position :

Valeur de position32168421
Bit101101

La valeur est 32+8+4+1=45. Un zéro n’ajoute rien, mais il maintient les autres chiffres à leur place. Les zéros à gauche ne changent pas la valeur : 00101101 vaut aussi 45.

Le bit le plus à gauche est le bit de poids fort. Celui le plus à droite est le bit de poids faible. Toutes les valeurs de position sauf la dernière sont paires : un entier binaire est donc impair exactement lorsque son bit de poids faible vaut 1.

Convertir par soustraction de puissances de deux

Pour écrire 156 en binaire, commence par la plus grande puissance de deux qui ne dépasse pas ce nombre : 128. Soustrais-la : il reste 28. Les valeurs de position 64 et 32 sont trop grandes, elles reçoivent donc toutes deux 0. Prends 16, il reste 12 ; prends 8, il reste 4 ; prends 4, il reste 0. Les positions inutilisées de valeurs 2 et 1 reçoivent 0.

Dans l’ordre des positions, le résultat est 156=100111002. Vérifie en additionnant les valeurs de position choisies : 128+16+8+4=156. Sauter une colonne inutilisée déplacerait tous les bits suivants et changerait le nombre.

La méthode par soustraction fonctionne parce que chaque position binaire ne peut être utilisée qu’une fois. Après avoir pris la plus grande puissance qui convient, le reste est inférieur à cette puissance. Continue en descendant toutes les positions, y compris celles qui reçoivent zéro, jusqu’à remplir celle des unités. Les bits choisis sont ainsi alignés sur des puissances distinctes, au lieu de former une liste de puissances sans position.

Convertir par divisions successives

Une autre méthode consiste à diviser successivement par 2. Garde le quotient pour la division suivante et note le reste :

NombreQuotientReste
156780
78390
39191
1991
941
420
210
101

Lis les restes de bas en haut, ce qui donne 10011100. Le premier reste correspond à la position des unités : lire de haut en bas inverse donc l’ordre des positions. Ici, cela donnerait 00111001, soit 57.

Garder la base visible

L’indice de 102 indique la base 2 : sa valeur est donc deux. Les mêmes chiffres dans 1010 valent dix. On lit généralement le binaire chiffre par chiffre : « un zéro ». Le décompte est 0, 1, 10, 11, 100, 101, 110, 111, 1000 ; on passe à la colonne suivante lorsqu’une colonne atteint 2. Une suite de huit uns vaut 28−1=255. Ajouter un zéro à droite décale chaque position vers la gauche et double la valeur : 101 devient 1010, faisant passer la valeur de cinq à dix.

Points clés

  • Additionne les puissances de deux dont les bits valent 1.
  • Les zéros à gauche préservent la valeur ; l’omission de positions internes la change.
  • Lis les restes des divisions successives du dernier au premier.
  • Un entier est impair exactement lorsque son bit de poids faible vaut 1.
  • Ajouter un zéro à droite double un entier binaire dont le nombre de bits n’est pas limité.

1.3 L’hexadécimal pour lire le binaire

L’hexadécimal écrit les nombres en base 16. Ses chiffres vont de 0 à 9, suivis de A, B, C, D, E et F, qui représentent les valeurs de 10 à 15. Un seul chiffre hexadécimal peut décrire tous les groupes possibles de quatre bits, ce qui facilite la lecture des longues configurations binaires.

Associer quatre bits à un chiffre

Puisque 16=24, chaque position hexadécimale correspond exactement à quatre positions binaires :

HexadécimalBinaireHexadécimalBinaire
0000081000
1000191001
20010A1010
30011B1011
40100C1100
50101D1101
60110E1110
70111F1111

Pour passer du binaire à l’hexadécimal, forme les groupes à partir de la droite. La configuration 10011100 devient 1001 1100, soit 0x9C. Si le dernier groupe à gauche est plus court, ajoute des zéros à gauche : 101101 devient 0010 1101, soit 0x2D. Le regroupement à partir de la gauche sous la forme 1011 01 placerait les chiffres aux mauvaises positions.

Pour effectuer la conversion inverse, développe chaque chiffre en quatre bits. Ainsi, 0x3E8 devient 0011 1110 1000. Garde les quatre bits dans chaque groupe, même lorsqu’un groupe commence par des zéros. Seuls les zéros situés tout à gauche du nombre entier peuvent être supprimés sans changer sa valeur.

Utiliser les valeurs de position en base 16

De droite à gauche, les valeurs de position en hexadécimal sont 1, 16, 256 et 4 096. Multiplie la valeur de chaque chiffre par sa valeur de position, puis additionne. Pour 0x2F, le calcul est 2×16+15=47. Pour 0x3E8 :

3×256+14×16+8=768+224+8=1000

La conversion du décimal à l’hexadécimal fonctionne aussi par divisions successives, cette fois par 16. Pour 1 000, le premier quotient est 62 et le reste 8. La division de 62 donne un quotient de 3 et un reste de 14, écrit E. La division de 3 donne un quotient de 0 et un reste de 3. Lis les restes en remontant : 3, E, 8.

Le regroupement fonctionne grâce à la valeur de position, et pas seulement grâce à une table de correspondance. Dans un nombre hexadécimal à deux chiffres, le demi-octet de gauche contribue pour sa valeur multipliée par 16, et celui de droite pour sa valeur multipliée par 1. En binaire, décaler un demi-octet de quatre positions vers la gauche multiplie aussi sa valeur par 16. Ce facteur commun permet de lire les deux groupes séparément sans d’abord convertir le nombre entier en décimal.

Reconnaître les usages courants

Un octet comporte deux demi-octets : il correspond donc exactement à deux chiffres hexadécimaux, de 0x00 à 0xFF. Une visionneuse d’octets peut afficher un long fichier de façon quatre fois plus compacte en hexadécimal qu’en binaire, tout en gardant visibles les séparations entre groupes.

Les couleurs du Web comme #FF8000 utilisent des paires de chiffres hexadécimaux pour le rouge, le vert et le bleu. Les adresses mémoire et les points de code Unicode comme U+00E9 utilisent aussi l’hexadécimal. Une adresse MAC comme 3C:22:FB:9A:01:7E écrit six octets avec douze chiffres hexadécimaux, avec des séparateurs entre les octets.

Le préfixe 0x, un indice de base comme dans 2F16 ou le # d’un code couleur indique la notation. L’ordinateur stocke les mêmes bits quelle que soit la notation utilisée. En particulier, 0x10 vaut seize. La valeur quinze correspond au seul chiffre F ; écrire « 15 » occupe deux positions hexadécimales et représente vingt et un.

Points clés

  • L’hexadécimal utilise les chiffres de 0 à 9 et les lettres de A à F, ces dernières représentant les valeurs de 10 à 15.
  • Pour convertir du binaire en hexadécimal, regroupe les bits par quatre en partant de la droite.
  • Un octet correspond exactement à deux chiffres hexadécimaux.
  • Les valeurs de position en hexadécimal sont des puissances de 16 ; changer de notation ne change pas les bits stockés.
2

Stocke des nombres entiers sur un nombre fixe de bits

Un nombre fixe de bits ne peut contenir qu’un ensemble déterminé de nombres entiers. L’interprétation choisie détermine si toutes ces configurations représentent des valeurs positives ou nulles, ou si certaines représentent des valeurs négatives. Tu liras le même octet des deux façons, choisiras un nombre de bits adapté à une plage donnée et suivras ce qui se passe aux extrémités de cette plage. Le complément à deux explique aussi comment les valeurs négatives gardent leur sens lorsqu’on augmente le nombre de bits.

2.1 Valeurs non signées et dépassement de capacité

Un entier non signé représente un nombre entier positif ou nul. Tous ses bits ont les poids binaires positifs habituels. Le nombre de bits fixe celui des positions disponibles : un octet ne peut donc pas gagner un neuvième bit simplement parce qu’un résultat en a besoin.

Trouver la plage de valeurs

Avec n bits, il existe 2n configurations. En commençant à zéro, on obtient la plage de 0 aˋ 2n−1. La plus grande valeur comporte un 1 à chaque position :

Nombre de bitsPlage non signée
8 bits0–255
16 bits0–65 535
32 bits0–4 294 967 295

Le nombre de valeurs disponibles et la valeur maximale diffèrent de un. Huit bits permettent de représenter 256 possibilités, mais 256 lui-même nécessite neuf positions, soit 1 0000 0000.

Une valeur stockée est complétée par des zéros à gauche pour occuper tous les bits. Par exemple, 45 sur 16 bits s’écrit 0000000000101101, soit 0x002D. Ces zéros indiquent le nombre de bits sans changer la valeur. Un nombre négatif n’a pas de représentation non signée, quel que soit le nombre de bits choisi.

Choisir suffisamment de positions

Une plage d’âges de 0 à 150 tient sur 8 bits, car 150 est inférieur à 255. Un décompte de 0 à 100 000 comprend 100 001 valeurs possibles. Seize bits ne donnent que 65 536 configurations. Dix-sept en donnent 131 072 : 17 est donc le minimum mathématique. Un programme utilisant les nombres de bits courants 8, 16, 32 et 64 choisirait 32 bits.

Le même raisonnement s’applique à tout compteur borné : vérifie la plus grande valeur que le compteur doit effectivement contenir, en tenant compte des deux extrémités. Une plage de 0 à 256 nécessite 257 configurations et ne tient donc pas dans un octet.

Une vérification utile aux limites consiste à comparer deux nombres de bits consécutifs. Le maximum non signé sur 8 bits est 255 et, sur 9 bits, il est de 511. Ajouter un bit double le nombre de configurations ; le maximum devient le double de l’ancien maximum plus un. Cette distinction compte lorsqu’une valeur requise correspond exactement à une puissance de deux : cette extrémité nécessite une nouvelle position, même si le nombre de bits précédent donne autant de configurations.

Suivre un résultat hors de la plage

Un dépassement de capacité signifie qu’un résultat ne tient pas dans la représentation choisie. Si un calcul sur 8 bits ne conserve que les huit bits de poids faible, 255 plus 1 produit 1 0000 0000 et stocke 00000000 : zéro. La position supplémentaire est éliminée.

Pour 200 plus 100, le résultat mathématique est 300. Le nombre de bits disponible conserve le reste après un cycle complet de 256 configurations : 300−256=44. L’octet stocké est 00101100. Ce comportement s’appelle le rebouclage. Il ne change pas le fait arithmétique que 200 plus 100 vaut 300 ; il décrit ce que le stockage limité conserve.

Le comportement en cas de dépassement dépend du système. Certaines opérations rebouclent, d’autres signalent une erreur et certains types de nombres s’agrandissent. Dans un calcul qui porte sur le rebouclage, ce comportement doit être précisé avant que tu élimines les bits de poids fort.

Observer les nombres fixes de bits dans les données

Une adresse IPv4 comporte 32 bits, soit environ 4,3 milliards de configurations possibles. Cet espace d’adresses limité a contribué au besoin d’un système d’adressage plus grand. Un canal de couleur RVB ordinaire comporte 8 bits, ce qui explique son échelle d’intensité de 0 à 255. Dans les deux cas, le maximum découle du nombre de bits ; une écriture décimale plus longue n’ajoute aucune capacité de stockage.

Points clés

  • Un entier non signé sur n bits va de 0 à 2ⁿ − 1.
  • Compte les deux extrémités lorsque tu choisis le nombre de bits.
  • Les zéros à gauche remplissent les positions disponibles sans changer une valeur non signée.
  • Un dépassement de capacité signifie qu’un résultat sort de la plage des valeurs représentables.
  • Lorsqu’un système ne conserve que les n bits de poids faible, les valeurs non signées rebouclent par cycles de 2ⁿ.

2.2 Entiers négatifs en complément à deux

Un entier négatif nécessite une règle de représentation : il ne suffit pas d’écrire un signe moins à côté d’un octet. Le complément à deux attribue un poids négatif au bit de poids fort. Les autres positions gardent leurs poids positifs : chaque configuration correspond ainsi à une seule valeur signée et zéro à une seule configuration.

Comparer deux lectures signées

Une méthode plus simple, la représentation en signe et valeur absolue, utilise le bit de poids fort uniquement pour le signe et les autres bits pour la valeur absolue. Sur 8 bits, +5 s’écrit 00000101 et −5 s’écrit 10000101. Cette méthode comporte deux zéros, 00000000 et 10000000, et l’addition de nombres de signes différents nécessite des règles supplémentaires.

En complément à deux sur 8 bits, les poids sont −128, 64, 32, 16, 8, 4, 2 et 1. Ainsi, 11010011 représente −128+64+16+2+1=−45. Lire les sept autres bits comme une valeur absolue de 83 donnerait −83, ce qui correspond à une autre représentation.

Nombre de bitsPlage en complément à deux
8 bits−128–127
16 bits−32 768–32 767
32 bits−2 147 483 648–2 147 483 647

En général, la plage va de −2n−1 aˋ 2n−1−1. Zéro et les valeurs positives s’écrivent comme en binaire ordinaire avec un 0 initial. Une suite composée uniquement de uns représente −1.

Écrire une valeur négative

Pour changer le signe d’une valeur représentable, inverse tous les bits et ajoute 1, en conservant le même nombre de bits. Pour coder −45 sur 8 bits :

  1. Écris +45 sous la forme 00101101.
  2. Inverse les huit bits : 11010010.
  3. Ajoute 1 : 11010011, soit 0xD3.

S’arrêter après l’inversion donne −46. Appliquer le processus complet à 11010011 donne à nouveau 00101101 et permet de retrouver +45.

Une autre méthode consiste à coder −x comme la valeur non signée 2n−x. Ici, 256−45=211, dont l’écriture binaire est 11010011. L’octet représente donc 211 en non signé ou −45 en signé. Les bits n’ont pas changé ; c’est le type qui a changé.

L’inversion suivie de l’addition a aussi une explication arithmétique. Pour une valeur positive x sur n bits, l’inversion la transforme en la valeur non signée 2n−1−x. Ajouter un donne 2n−x, dont l’interprétation signée est −x. Cela relie la méthode bit par bit à la méthode par soustraction et explique pourquoi l’omission du 1 final donne une valeur négative incorrecte.

Préserver une valeur signée sur davantage de bits

L’extension de signe copie le bit de poids fort dans les nouvelles positions à gauche. −3 sur quatre bits s’écrit 1101 ; sur 8 bits, il s’écrit 11111101. Son poids négatif de gauche et les poids positifs ajoutés donnent toujours un total de −3. Le compléter avec des zéros donnerait 00001101, soit +13. Les valeurs positives sont étendues avec des zéros : 0011 devient 00000011.

Reconnaître les extrémités de la plage

Le complément à deux permet l’addition binaire ordinaire pour les résultats qui tiennent dans la plage. Sur 4 bits, 0101 plus 1101, soit 5 plus −3, donne 1 0010. Les quatre bits de poids faible conservés donnent 0010, soit 2. Le même matériel d’addition de base peut ainsi traiter les valeurs signées et non signées.

Un résultat hors plage est différent : sur 8 bits, 127 plus 1 laisse 10000000, qui se lit −128. De plus, −128 n’a pas d’opposé positif sur 8 bits. Inverser 10000000 et ajouter 1 redonne 10000000, car +128 est hors de la plage. Augmente le nombre de bits avant de former cette valeur positive.

Points clés

  • Le bit de poids fort a le poids −2ⁿ⁻¹ en complément à deux sur n bits.
  • Le complément à deux comporte un seul zéro et une valeur négative de plus que de valeurs positives.
  • Change le signe en inversant tous les bits et en ajoutant 1, sans modifier le nombre de bits.
  • L’extension de signe copie le bit de poids fort dans les positions ajoutées.
  • La valeur la plus négative n’a pas d’opposé positif sur le même nombre de bits.
  • Une même configuration peut avoir des sens différents selon qu’elle est lue comme signée ou non signée.
3

Stocke des fractions et des valeurs à virgule flottante

À droite de la virgule binaire, les valeurs de position se prolongent en moitiés, quarts et fractions plus petites. Certaines fractions décimales ont une écriture binaire finie, tandis que d’autres nécessitent un motif sans fin. La virgule fixe réserve un nombre défini de positions à la partie fractionnaire ; la virgule flottante stocke une échelle en plus d’un significande. La lecture de ces formats permet de comprendre leur large plage de valeurs et leurs erreurs d’arrondi, notamment le résultat bien connu de l’addition de 0,1 et 0,2.

3.1 Fractions binaires et virgule fixe

La première position après la virgule binaire vaut un demi. Chaque position suivante vaut la moitié de la précédente : un quart, un huitième, un seizième, et ainsi de suite. Un 1 ajoute la fraction correspondante ; un 0 ne l’ajoute pas. Les positions de la partie entière à gauche conservent leurs puissances de deux habituelles.

Lire et construire une fraction binaire

Pour 101,1012, la partie entière vaut 4 plus 1. La partie fractionnaire vaut un demi plus un huitième, ce qui donne 4+1+0,5+0,125=5,625.

Pour convertir une fraction décimale, multiplie-la successivement par 2. La partie entière de chaque résultat est le chiffre binaire suivant ; ne garde que la partie fractionnaire pour la multiplication suivante. Pour 0,375 :

  1. 0,375×2=0,75, donc le premier bit est 0.
  2. 0,75×2=1,5, donc le bit suivant est 1 ; garde 0,5.
  3. 0,5×2=1,0, donc le bit suivant est 1 et le processus s’arrête.

Le résultat est 0,0112. Sa valeur est un quart plus un huitième, soit 0,375. Ces bits se lisent dans l’ordre où ils ont été trouvés, contrairement aux restes de la division d’un entier.

Déterminer si le développement est fini

Réduis la fraction. Son développement binaire est fini exactement lorsque son dénominateur est une puissance de 2. Des valeurs comme 0,5, 0,25, 0,75 et 0,375 satisfont ce critère. Par exemple, 0,375 vaut 3/8, et huit est une puissance de deux.

Le nombre décimal 0,1 vaut 1/10. Son dénominateur comprend un facteur 5, donc son développement binaire se répète : 0,0001100110011…2. Tout comme un tiers ne peut pas avoir d’écriture décimale finie, un dixième ne peut pas avoir d’écriture binaire finie. La forme écrite courte « 0,1 » nécessite donc une approximation lorsque seul un nombre limité de positions binaires est disponible. Le même problème concerne 0,2 et 0,3.

La règle du dénominateur découle des positions elles-mêmes. Une suite finie qui se termine à la f-ième position fractionnaire peut s’écrire comme un entier divisé par 2f. Réduire cette fraction peut supprimer des facteurs deux, mais ne peut pas introduire un autre facteur premier dans le dénominateur. Un dénominateur réduit contenant le facteur cinq ne peut donc correspondre à aucune somme binaire finie de ce type.

Réserver une échelle fixe

Une représentation à virgule fixe attribue un nombre défini de bits à la partie fractionnaire. Avec quatre bits pour la partie entière et quatre pour la partie fractionnaire, 0110,1000 vaut 6,5. Le plus petit pas est 2−4=0,0625 et la plus grande valeur non signée est 1111,1111, soit 15,9375.

De façon équivalente, l’entier stocké sur huit bits est multiplié par 1/16. La configuration 01101000 a pour valeur non signée 104 ; la division par 16 donne 6,5. La virgule fait partie de l’interprétation : elle n’a donc pas besoin d’être stockée comme symbole supplémentaire.

Si l’on garde huit bits au total mais qu’on utilise cinq bits pour la partie entière et trois pour la partie fractionnaire, le pas devient 0,125 et le maximum 31,875. On gagne en plage de valeurs, mais on perd en finesse. Dans sa plage, la virgule fixe représente exactement les multiples de son pas.

Un décompte exact de centimes utilise une idée d’échelle apparentée : 19,99 unités monétaires deviennent l’entier 1 999 centimes. Pour les mesures couvrant des grandeurs très différentes, la virgule flottante stocke une échelle mobile, ce qui permet au même nombre de bits de couvrir une plage bien plus large que la virgule fixe.

Points clés

  • Les positions fractionnaires binaires valent 1/2, 1/4, 1/8, et ainsi de suite.
  • Multiplie une partie fractionnaire par 2 et lis les parties entières dans l’ordre.
  • Une fraction réduite a un développement binaire fini exactement lorsque son dénominateur est une puissance de 2.
  • À nombre total de bits fixe, la virgule fixe impose un compromis entre la plage de valeurs et la résolution fractionnaire.

3.2 Lis et écris les champs IEEE 754

La virgule flottante écrit une valeur en notation scientifique binaire. Par exemple, 6,25 s’écrit 110,012=1,10012×22. La partie initiale est le significande et l’exposant détermine son échelle. IEEE 754 définit des formats largement utilisés pour stocker ces parties.

Connaître les champs
FormatTotalSigneExposantFractionBiais
Simple, binary3232 bits1823127
Double, binary6464 bits111521023

Pour une valeur normale, la lecture est (−1)s×(1,f)2×2E−biais. Ici, s est le bit de signe, E l’exposant stocké non signé et f le champ de fraction. Un bit de signe égal à 0 indique une valeur positive ; égal à 1, une valeur négative. Modifier uniquement le bit de signe change le signe d’une valeur à virgule flottante.

L’exposant stocké est égal à l’exposant réel plus le biais. En simple précision, l’exposant 2 devient 129, soit 10000001 ; l’exposant −3 devient 124, soit 01111100. Les exposants stockés des nombres normaux vont de 1 à 254 et représentent les exposants réels de −126 à 127.

Un significande binaire normal commence toujours par 1 : le format omet donc ce bit implicite. Seuls les bits après la virgule entrent dans le champ de fraction. Cela donne 24 chiffres binaires significatifs en simple précision et 53 en double précision.

Coder −6,25 étape par étape

Commence par normaliser sa valeur absolue : 110,012=1,10012×22. Remplis ensuite les champs :

  1. Valeur négative : signe 1.
  2. Exposant 2 : ajoute 127 pour obtenir 129, écrit 10000001.
  3. Fraction ,1001 : stocke 1001 suivi de 19 zéros.

Le résultat est 1 10000001 10010000000000000000000, soit 0xC0C80000. La fraction est complétée par des zéros à droite, car ces positions se prolongent après la virgule. Stocker le 1 initial décalerait le sens de la fraction.

Un exposant réel négatif donne une échelle inférieure à un. Pour 0,15625, l’écriture binaire est 0,001012=1,012×2−3. Son signe en binary32 est 0 et son exposant stocké est 124, soit 01111100. La fraction commence par 01 et est complétée à droite. Le 1 implicite appartient toujours au significande normalisé, même si le nombre complet est inférieur à un.

Décoder une configuration

La configuration en simple précision 0x41200000 se décompose en 0 10000010 01000000000000000000000. Le signe est positif. Le champ d’exposant vaut 130 : soustrais donc 127 pour obtenir 3. Rétablis le 1 implicite pour obtenir 1,012=1,25. Enfin, 1,25×23=10.

Vérifier d’abord les exposants réservés

La formule des nombres normaux ne décrit pas toutes les configurations :

Champ d’exposantChamp de fractionSens
Tous les bits à zéroZéro+0 ou −0, selon le signe
Tous les bits à zéroNon nulUne valeur dénormalisée, avec un 0 initial
Tous les bits à unZéroInfini positif ou négatif
Tous les bits à unNon nulNaN, « pas un nombre »

Les valeurs dénormalisées représentent de très petites valeurs sans le 1 implicite. NaN peut résulter d’une opération numérique non valide comme 0 divisé par 0. IEEE 754-2019 définit ces formats.

Points clés

  • La simple précision comporte des champs de 1, 8 et 23 bits ; la double précision en comporte de 1, 11 et 52 bits.
  • Soustrais le biais d’exposant lors du décodage ; ajoute-le lors du codage.
  • Les valeurs normales comportent un 1 initial qui n’est pas stocké.
  • Complète le champ de fraction avec des zéros à droite.
  • Les champs d’exposant composés uniquement de zéros ou uniquement de uns ont des sens particuliers.
  • Les champs de signe et d’exposant d’un nombre à virgule flottante ne forment pas un entier en complément à deux.

3.3 Plage de valeurs, précision et erreur d’arrondi

Un format à virgule flottante peut couvrir une immense plage sans représenter toutes les valeurs de cette plage. L’exposant détermine l’échelle ; le champ de fraction détermine le nombre de bits significatifs qui distinguent les valeurs voisines. La plage de valeurs et la précision répondent à des questions différentes.

Comparer la simple et la double précision

La simple précision atteint environ 3,4×1038 et conserve environ sept chiffres décimaux significatifs. Sa plus petite valeur normale positive est d’environ 1,18×10−38. La double précision atteint environ 1,8×10308, conserve environ 15 à 16 chiffres décimaux significatifs et a une plus petite valeur normale positive d’environ 2,2×10−308. Les valeurs dénormalisées descendent en dessous du minimum normal dans chaque format.

Les chiffres significatifs sont comptés à partir du premier chiffre qui a un sens, et non à partir de la virgule. Un exposant élevé ne crée pas davantage de bits de fraction. En simple précision, l’écart au-dessus de 1 est 2−23≈1,19×10−7. Entre 224 et 225, l’écart est de 2 : l’entier 16 777 217 n’est donc pas représentable, bien qu’il soit très inférieur à la valeur finie maximale.

Arrondir à une valeur représentable

La règle par défaut d’IEEE 754 est l’arrondi au plus proche, au pair en cas d’égalité. Choisis la valeur représentable la plus proche ; si le nombre est exactement à mi-chemin, choisis celle dont le dernier bit du significande conservé est pair. Ainsi, 16 777 217 est arrondi à 16 777 216 en simple précision.

L’écart entre la valeur voulue et la valeur stockée est l’erreur d’arrondi. En simple précision, 0,1 est stocké sous la forme 0,100000001490116119384765625. En double précision, il vaut approximativement 0,10000000000000000555. Une plus grande précision réduit cette erreur, mais ne peut pas rendre fini un développement périodique.

Comprendre un résultat connu

Avec l’arithmétique ordinaire en double précision IEEE 754, l’addition de 0,1 et 0,2 produit un résultat stocké généralement affiché sous la forme 0.30000000000000004. Il diffère de l’approximation stockée de 0,3 : 0.1 + 0.2 == 0.3 est donc faux dans des langages comme Python et JavaScript. Pour des résultats de mesure, compare la différence à une tolérance choisie selon l’échelle et l’objectif de la tâche.

De nombreuses valeurs sont exactes. La double précision stocke exactement tous les entiers de −253 à 253. Des valeurs comme 0,5 et 0,375 ont aussi des écritures binaires courtes qui tiennent dans son significande et sa plage d’exposants.

Choisir un type de nombre adapté

Les entiers conviennent aux décomptes et aux identifiants. Pour des montants financiers exacts, on peut utiliser des unités monétaires fractionnaires entières, comme des centimes, ou un type de nombre décimal. La virgule flottante convient souvent aux mesures et aux calculs scientifiques. Une grandeur trop grande pour le format peut entraîner un dépassement de capacité vers l’infini ; avec la règle d’arrondi par défaut, 1039 en simple précision devient l’infini positif. Les très petits résultats peuvent devenir dénormalisés ou être arrondis à zéro.

Les conventions d’affichage sont distinctes du stockage. Les écritures "3.14" et "3,14" peuvent désigner le même nombre selon le pays. Un logiciel qui lit du texte doit connaître la convention utilisée ; sinon, il risque de rejeter la virgule ou de lire la valeur comme 314. Changer le séparateur affiché n’améliore pas la précision binaire.

Points clés

  • La plage de valeurs détermine les grandeurs représentables ; la précision détermine l’espacement entre les valeurs voisines.
  • Les écarts entre les valeurs à virgule flottante augmentent avec leur grandeur.
  • La règle d’arrondi par défaut choisit la valeur la plus proche et, en cas d’égalité exacte, celle dont le dernier bit est pair.
  • Une fraction décimale courte peut tout de même nécessiter un arrondi en binaire.
  • Choisis un stockage entier, décimal ou à virgule flottante selon la tâche.
4

Transforme les caractères en codes et en octets

Le texte nécessite un accord entre le logiciel qui l’écrit et celui qui le lit. ASCII attribue des codes numériques à un petit ensemble de caractères. Unicode fournit un espace de codes commun à de nombreux systèmes d’écriture, tandis que des encodages comme UTF-8 déterminent les octets effectivement utilisés. Distinguer un caractère affiché d’un point de code et d’un octet t’aide à calculer la taille d’un texte et à expliquer pourquoi un fichier correctement enregistré peut apparaître illisible.

4.1 Les codes ASCII et leurs limites

Pour stocker du texte, un système attribue des codes numériques aux caractères et écrit ces nombres sous forme de bits. Un code de caractère ne fonctionne que si le lecteur utilise la même convention que l’auteur. L’octet qui représente une lettre est une notation codée ; ce n’est pas une minuscule image de cette lettre.

Lire la table ASCII

ASCII, l’American Standard Code for Information Interchange, a été publié pour la première fois en 1963. Il utilise 7 bits pour 128 codes numérotés de 0 à 127. Dans un stockage par octets, un code ASCII occupe généralement un octet avec un 0 initial.

CodesSens
0–31 et 127Caractères de contrôle
32Espace
48–57Chiffres de « 0 » à « 9 »
65–90Majuscules de « A » à « Z »
97–122Minuscules de « a » à « z »

La ponctuation occupe les espaces restants. Les codes de 32 à 126 forment 95 caractères imprimables, espace compris. Les caractères de contrôle agissent sur le traitement du texte sans imprimer de symbole visible : la tabulation est 9, le saut de ligne est 10 et le retour chariot est 13.

Encoder une courte chaîne de caractères

Le texte « Hi! » comporte trois caractères. Leurs codes décimaux sont 72, 105 et 33 ; en hexadécimal, ce sont 0x48, 0x69 et 0x21. Sous forme d’octets complets, le texte devient 01001000 01101001 00100001. Le point d’exclamation a besoin d’un code tout comme les lettres.

Le code ASCII d’une lettre minuscule est supérieur de 32 à celui de sa version majuscule. « A » vaut 65, soit 01000001, tandis que « a » vaut 97, soit 01100001. La différence tient à ce seul bit modifié. Cet ordre place aussi toutes les majuscules avant toutes les minuscules. Un simple tri fondé sur les codes place donc « Zebra » avant « apple » ; il ne suit pas l’ordre habituel du dictionnaire.

Distinguer un chiffre d’un nombre

Le caractère « 7 » a pour code décimal 55 et pour octet 00110111. L’entier 7 correspond à l’octet 00000111. Pour retrouver la valeur numérique d’un chiffre à partir de son code ASCII, soustrais 48, le code de « 0 » : 55−48=7. Cela fonctionne parce que les dix codes des chiffres sont consécutifs.

L’espace de stockage dépend de la représentation choisie. Le texte « 2026 » nécessite quatre octets ASCII, un par chiffre. L’entier 2026 tient dans deux octets comme valeur non signée sur 16 bits. Le texte préserve la suite des caractères ; un entier représente la valeur numérique. Par exemple, un identifiant textuel peut conserver des zéros à gauche qu’un entier ne distingue pas.

Pour encoder une chaîne plus longue, traite chaque caractère dans l’ordre, y compris les espaces, la ponctuation et les caractères de contrôle. Le décodage effectue la recherche inverse, un code à la fois, dans la même table. L’ordre compte : échanger deux codes valides peut produire un texte encore valide en ASCII, mais différent. Une recherche réussie établit que les codes sont reconnus, pas qu’ils ont l’ordre ou le sens voulu.

Comprendre les problèmes causés par les pages de codes

ASCII ne contient ni les lettres accentuées comme « é », « ñ » ou « ü », ni les caractères grecs, cyrilliques, arabes ou chinois. Les pages de codes sur 8 bits apparues plus tard ont utilisé les valeurs de 128 à 255 pour des symboles supplémentaires, mais elles ne s’accordaient pas sur ces ajouts.

Par exemple, l’octet 0xE9 représente « é » en Latin-1, mais « й » en Windows-1251. Windows-1252 est une autre page de codes courante. La valeur d’un octet ne peut donc pas identifier un caractère non ASCII sans que l’on connaisse l’encodage. Utiliser la mauvaise table peut produire des symboles qui semblent lisibles, mais constituent néanmoins un texte incorrect.

Points clés

  • ASCII définit 128 codes sur 7 bits, généralement stockés à raison d’un par octet.
  • Les caractères imprimables comprennent les espaces et la ponctuation ; les caractères de contrôle ont d’autres rôles.
  • Les caractères représentant des chiffres ont des codes différents des entiers qu’ils désignent.
  • Différentes anciennes pages de codes peuvent associer des caractères différents au même octet.

4.2 Points de code Unicode et encodages UTF

Unicode attribue aux caractères des systèmes d’écriture du monde entier un ensemble commun de numéros appelés points de code. « A » est U+0041, « é » est U+00E9, « Ж » est U+0416, « 中 » est U+4E2D et « 😀 » est U+1F600. La notation U+ utilise l’hexadécimal avec au moins quatre chiffres.

Distinguer un point de code de ses octets

L’espace de codes va de U+0000 à U+10FFFF, soit 1 114 112 positions, avec plus de 150 000 caractères attribués. Un point de code identifie un caractère ou une position réservée ; un encodage détermine sa représentation en octets.

EncodageStockage d’un point de code valide correspondant à un caractère
UTF-81 à 4 octets
UTF-162 octets jusqu’à U+FFFF ; 4 octets au-delà
UTF-324 octets

La plage des points de substitution U+D800–U+DFFF est réservée au mécanisme de paires d’UTF-16 ; les points de substitution isolés ne sont pas des caractères valides à encoder sous ces formes. Une paire d’unités de code UTF-16 représente un point de code supplémentaire. Par exemple, « 😀 » s’écrit D83D DE00 en UTF-16.

Lire les plages d’octets d’UTF-8

UTF-8 préserve ASCII : les points de code de U+0000 à U+007F utilisent un octet. Ceux de U+0080 à U+07FF en utilisent deux ; les points de code valides correspondant à des caractères de U+0800 à U+FFFF en utilisent trois ; ceux de U+10000 à U+10FFFF en utilisent quatre. Le texte anglais en ASCII est ainsi compatible octet par octet avec UTF-8.

Un caractère sur un seul octet commence par 0. Les caractères plus longs commencent par 110, 1110 ou 11110 pour deux, trois ou quatre octets. Chaque octet de continuation commence par 10. Les bits restants contiennent le point de code.

Pour « é », U+00E9, la valeur sur 11 bits est 00011101001. Sépare-la en cinq bits et six bits : 00011 et 101001. Insère-les dans 110xxxxx 10xxxxxx pour obtenir 11000011 10101001, soit C3 A9. Le point de code 00E9 n’est pas lui-même la suite d’octets UTF-8.

L’encodage et le décodage doivent aussi respecter les préfixes des octets. Un octet de continuation UTF-8 n’est pas un octet ASCII autonome : ses deux premiers bits sont 10, il appartient donc à une séquence d’octets codant un caractère plus long. Supprimer une partie d’un caractère à plusieurs octets à la limite d’un nombre d’octets peut laisser une séquence incomplète. La longueur de stockage et les endroits où le texte peut être découpé sont donc liés.

Compter les bons éléments

« café » comporte quatre caractères affichés mais cinq octets UTF-8 : 63 61 66 C3 A9. « € » utilise E2 82 AC, soit trois octets ; « 中 » utilise E4 B8 AD, également trois ; « 😀 » utilise F0 9F 98 80, soit quatre. Une limite en octets peut donc accepter moins de caractères que sa valeur numérique ne le laisse penser.

Un caractère affiché peut aussi contenir plusieurs points de code. « é » peut être U+00E9 ou « e » suivi de U+0301, un accent aigu combinant. La deuxième forme utilise trois octets UTF-8, 65 CC 81. La normalisation convertit des séquences équivalentes sous une forme commune pour les comparer. L’emoji affiché « 👍🏽 » contient deux points de code, U+1F44D et U+1F3FD, soit huit octets UTF-8 au total.

Diagnostiquer un texte illisible

« café » en UTF-8 lu comme du Windows-1252 devient « café » : C3 et A9 sont traités comme des caractères distincts. C’est du mojibake, causé par un décodage avec le mauvais encodage. Un décodage correct peut retrouver le texte tant que les octets d’origine restent intacts. Une page Web peut déclarer son encodage avec <meta charset="utf-8">.

Points clés

  • Un point de code identifie un caractère ; un encodage détermine ses octets.
  • UTF-8 utilise de un à quatre octets et préserve ASCII sans modification.
  • Les octets de continuation en UTF-8 commencent par 10.
  • Un caractère affiché, un point de code et un octet sont des unités de comptage différentes.
  • La normalisation peut mettre des séquences de caractères équivalentes sous une même forme.
  • Un décodage avec le mauvais encodage peut produire du mojibake.
5

Mesure les images et le son en bits

Les images et les enregistrements transforment les détails visuels et sonores en nombres. Une image matricielle stocke une grille de valeurs de pixels ; un fichier audio échantillonné stocke des mesures prises à intervalles réguliers. L’espace nécessaire dépend du nombre de valeurs conservées et du nombre de bits requis pour chacune. Ces choix influent aussi sur les détails préservés. Les dessins vectoriels et le MIDI suivent une autre approche : ils décrivent des formes ou des notes sous forme d’instructions qu’un appareil transforme ensuite en image ou en son.

5.1 Pixels, RVB, palettes et transparence

Une image matricielle est une grille de pixels. Chaque pixel contient une valeur de couleur. La largeur et la hauteur donnent la résolution de l’image : 1920 sur 1080 signifie 1920×1080=2 073 600 pixels. Un nombre de pixels décrit la grille, et non sa taille imprimée en mètres.

Attribuer assez de bits à chaque pixel

La profondeur de couleur est le nombre de bits utilisés pour la couleur d’un pixel. Une profondeur de k bits permet 2k codes possibles. Un bit permet de distinguer deux couleurs. Les niveaux de gris sur huit bits permettent de distinguer 256 intensités, généralement de 0 pour le noir à 255 pour le blanc.

Une image simple de 3 sur 3 peut utiliser 1 pour le noir et 0 pour le blanc. Un signe plus noir est représenté par les lignes 010, 111 et 010. Neuf pixels à un bit chacun nécessitent neuf bits d’information de pixel. Le stockage réel du fichier peut comprendre du remplissage et d’autres informations en plus de ces bits.

Mélanger la lumière avec le RVB

Le RVB stocke les intensités de lumière rouge, verte et bleue. Avec 8 bits par canal, chaque intensité va de 0 à 255 et un pixel utilise 24 bits. Le nombre de couleurs possibles est 2563=224=16 777 216.

Valeurs RVBCouleur
(0 ; 0 ; 0)Noir
(255 ; 255 ; 255)Blanc
(255 ; 0 ; 0)Rouge
(0 ; 0 ; 255)Bleu
(255 ; 255 ; 0)Jaune

Le RVB est un mélange additif de lumière. La combinaison de lumière rouge et verte donne du jaune. Une prévision fondée sur le mélange des peintures utilise un autre procédé et donne un modèle incorrect pour un écran.

Lire les codes couleur hexadécimaux

Une couleur du Web utilise #RRGGBB : deux chiffres hexadécimaux pour le rouge, puis pour le vert, puis pour le bleu. #FF8000 correspond à (255 ; 128 ; 0), un orange. #808080 correspond à (128 ; 128 ; 128), un gris moyen ; des valeurs de canal égales produisent un gris. #0000FF donne la valeur maximale de bleu avec le rouge et le vert à zéro.

Chaque paire correspond à un octet. Ainsi, FF vaut 255 et ne représente pas deux intensités de couleur distinctes. Le # indique l’ensemble du code RVB et n’occupe pas de canal.

Les modèles RVB et à palette donnent accès à la couleur d’un pixel de deux façons différentes. En RVB direct, la lecture du pixel donne immédiatement les intensités de ses trois canaux. En couleurs indexées, la lecture du pixel donne un numéro d’entrée, puis une seconde recherche fournit les intensités. Modifier une entrée de la palette peut donc changer de nombreux pixels affichés qui partagent le même indice, même si les indices stockés des pixels restent inchangés.

Stocker un indice de palette

Lorsqu’une image utilise peu de couleurs, elle peut conserver une palette, une table des couleurs sélectionnées. Un pixel stocke alors un indice dans cette table. Une palette de 16 couleurs nécessite quatre bits par pixel, car quatre bits permettent de distinguer 16 entrées. La palette elle-même occupe aussi de l’espace. GIF permet jusqu’à 256 couleurs dans la palette, ce qui permet un indice sur 8 bits par pixel.

Ajouter de la transparence

Un canal alpha décrit l’opacité. Une échelle courante sur 8 bits utilise 0 pour une transparence totale et 255 pour une opacité totale, avec des valeurs intermédiaires pour une transparence partielle. Ajouter ce canal au RVB sur 24 bits donne du RGBA sur 32 bits. Le canal alpha est distinct du rouge, du vert et du bleu : un pixel totalement transparent peut toujours avoir des valeurs de couleur stockées qui n’apparaissent pas dans l’image finale.

Points clés

  • Une image matricielle stocke une grille de valeurs de pixels.
  • La profondeur de couleur détermine le nombre de codes couleur disponibles par pixel.
  • Le RVB ordinaire utilise trois canaux de 8 bits, soit 24 bits au total.
  • Un indice de palette sélectionne une couleur dans une table.
  • Un canal alpha ajoute une information d’opacité ; un canal alpha sur 8 bits transforme le RVB en RGBA sur 32 bits.

5.2 Calcule l’espace de stockage des images et des vidéos

La quantité de données des pixels d’une image matricielle non compressée augmente avec son nombre de pixels et son nombre de bits par pixel. Garder les unités à chaque étape aide à distinguer la quantité d’information de la taille en octets indiquée par une visionneuse de fichiers.

Calculer les données des pixels

Utilise bits=largeur×hauteur×bits par pixel. Divise par 8 pour obtenir des octets. La largeur et la hauteur doivent être multipliées, car chaque ligne contient toute la largeur de pixels.

Pour 1920 sur 1080 à 24 bits par pixel, trouve d’abord 2 073 600 pixels. Multiplie par 24 pour obtenir 49 766 400 bits, puis divise par 8 pour obtenir 6 220 800 octets. Cela représente environ 6,2 MB, soit 5,93 MiB. Changer d’unité ne modifie pas les données des pixels elles-mêmes.

Pour 640 sur 480 en niveaux de gris sur 8 bits, il y a 307 200 pixels. Huit bits chacun donnent 2 457 600 bits ; la division par 8 donne 307 200 octets, soit environ 307 kB. Ici, un octet par pixel rend le nombre final d’octets égal au nombre de pixels.

Prévoir les changements avant de calculer

Doubler la largeur double le nombre de pixels dans chaque ligne. Doubler la hauteur double le nombre de lignes. Doubler les deux multiplie donc par quatre le nombre de pixels et l’espace de stockage. Passer d’une profondeur de 8 à 24 bits par pixel triple le stockage à résolution égale. Ces facteurs se multiplient si les deux changent.

Le calcul brut donne les données des pixels, pas nécessairement un fichier image complet. Un fichier stocke aussi des métadonnées, comme la largeur, la hauteur, la profondeur de couleur et le format. Une photo peut enregistrer les réglages de l’appareil, la date et le lieu. Les tables de palette, les en-têtes, le remplissage et la compression peuvent aussi modifier la taille finale en octets.

Pour les profondeurs inférieures à huit bits, calcule toutes les données en bits avant la conversion. Une image de 100 sur 60 à un bit contient 6 000 bits de pixels, soit 750 octets une fois regroupés. Traiter chaque pixel comme un octet multiplierait cette quantité par huit. Si un format complète chaque ligne jusqu’à une limite particulière, ce remplissage doit être ajouté séparément ; il ne change pas la profondeur de couleur.

Étendre le calcul à la vidéo

Une vidéo présente une suite d’images. À 30 images par seconde, une vidéo RVB de 1920 sur 1080 nécessite 6 220 800×30=186 624 000 octets de données d’image non compressées par seconde, soit environ 187 MB/s. La multiplication par la durée donne le total des données d’image. Le son nécessite son propre espace de stockage.

Ce débit élevé explique pourquoi les fichiers vidéo ordinaires sont compressés. Le débit d’une vidéo compressée est une grandeur distincte ; on ne peut pas le déduire de la seule résolution.

Comparer les images matricielles et vectorielles
Image matricielleImage vectorielle
Stocke une grille de valeurs de couleurStocke des formes et des instructions de dessin
Convient aux photographies et aux texturesConvient aux logos, aux diagrammes et aux contours des caractères
L’agrandissement de la grille révèle les pixelsLes formes peuvent être redessinées à une plus grande échelle

Un fichier vectoriel peut décrire une ligne allant de (0 ; 0) à (100 ; 50), ou un cercle par son centre, son rayon et son remplissage. Il n’a pas besoin de stocker une valeur de couleur distincte pour chaque point à l’intérieur du cercle. Les dessins simples peuvent donc être peu volumineux. SVG est un format vectoriel courant.

Un écran a toujours besoin de pixels. La rastérisation transforme les formes en une grille de pixels à la taille demandée. Redimensionner les instructions vectorielles préserve la géométrie des formes ; agrandir une image matricielle existante ne peut pas retrouver les détails que sa grille d’origine n’a jamais enregistrés.

Points clés

  • Le nombre de bits d’une image matricielle non compressée est égal à largeur × hauteur × bits par pixel.
  • Divise les bits par 8 avant d’indiquer le nombre d’octets.
  • Doubler les deux dimensions multiplie par quatre les données des pixels à profondeur égale.
  • Les données brutes d’image d’une vidéo sont égales à octets par image × fréquence d’images × durée.
  • Les métadonnées et la compression font que la taille du fichier diffère du calcul brut des pixels.
  • Les images vectorielles stockent des formes qui sont rastérisées pour l’affichage.

5.3 Échantillonne le son et calcule la taille d’un fichier audio

Le son est une vibration de la pression de l’air. Un microphone le transforme en un signal électrique analogique qui varie de façon continue. Un convertisseur analogique-numérique prend des mesures régulières, appelées échantillons, et stocke chacune sous forme d’un nombre.

Distinguer le temps de la finesse des mesures

La fréquence d’échantillonnage, mesurée en hertz, est le nombre d’échantillons pris chaque seconde par canal. Une fréquence de 44 100 Hz vaut 44,1 kHz. Les CD utilisent 44,1 kHz, les bandes-son vidéo utilisent généralement 48 kHz et la téléphonie traditionnelle utilise 8 kHz. Les échantillons enregistrent des valeurs à ces instants ; ils ne constituent pas un enregistrement continu de tous les instants intermédiaires.

La profondeur de quantification détermine le nombre de niveaux que peut prendre chaque échantillon. Huit bits donnent 256 niveaux, 16 en donnent 65 536 et 24 en donnent 16 777 216. L’arrondi d’une mesure à un niveau est la quantification. La différence avec la mesure d’origine produit une erreur de quantification, qui peut être entendue comme du bruit. Davantage de bits offrent des niveaux plus fins et réduisent cette erreur.

La fréquence d’échantillonnage détermine la précision dans le temps ; la profondeur de quantification détermine la finesse de l’amplitude mesurée. Augmenter l’une ne remplace pas l’augmentation de l’autre.

Capter la plage de fréquences

Le théorème d’échantillonnage impose une fréquence d’échantillonnage supérieure au double de la fréquence la plus élevée à capter. Pour capter 20 kHz, la fréquence doit dépasser 40 kHz. Exactement le double ne suffit pas pour un signal quelconque à cette limite.

À 44,1 kHz, la limite théorique est inférieure à 22,05 kHz. L’écart au-dessus d’environ 20 kHz, limite supérieure approximative de l’audition humaine, laisse de la place pour un filtre anti-repliement. Les fréquences supérieures à la moitié de la fréquence d’échantillonnage peuvent apparaître comme de fausses fréquences plus basses : c’est le repliement spectral. Un convertisseur filtre ces hautes fréquences avant l’échantillonnage.

Une fréquence de 44 100 Hz s’applique à chaque canal, et non à l’enregistrement comme flux combiné. La stéréo stocke donc 88 200 valeurs d’échantillons chaque seconde. Le facteur correspondant aux canaux figure dans la formule de stockage, car chaque instant comporte une valeur à gauche et une à droite. Il ne double pas la fréquence maximale que chaque canal peut capter ; cette limite dépend toujours de sa propre fréquence d’échantillonnage.

Calculer la taille d’un fichier audio non compressé

Le mono a un canal ; la stéréo en a deux. La taille des données est

bits=freˊquence d’eˊchantillonnage×profondeur de quantification×canaux×secondes

Pour un enregistrement stéréo de trois minutes à 44 100 Hz et sur 16 bits, le débit est de 44 100×16×2=1 411 200 bit/s. Multiplie par 180 secondes pour obtenir 254 016 000 bits, puis divise par 8 : 31 752 000 octets, soit environ 31,8 MB.

Un enregistrement mono de dix secondes à 8 000 Hz et sur 8 bits donne 8 000×8×1×10=640 000 bits, soit 80 000 octets. Un enregistrement stéréo avec les mêmes réglages utiliserait deux fois plus d’espace.

Choisir ce qu’il faut stocker

Des fréquences et des profondeurs plus élevées nécessitent davantage d’espace. Les réglages du CD suffisent généralement pour l’écoute ; les studios utilisent souvent 24 bits et 48 kHz ou plus pour garder une marge de traitement et de montage.

Le MIDI enregistre des instructions sur les notes : lesquelles sont jouées, quand elles commencent, leur intensité et les instruments choisis. Il peut être bien plus petit qu’une interprétation échantillonnée, mais la lecture dépend des sons d’instruments disponibles. Le MIDI peut décrire la mélodie d’une personne qui chante sous forme de notes ; il ne peut pas contenir la voix réellement enregistrée.

Points clés

  • La fréquence d’échantillonnage compte les mesures par seconde ; la profondeur de quantification compte les bits par mesure.
  • La quantification arrondit un échantillon à l’un des niveaux disponibles.
  • La fréquence d’échantillonnage doit dépasser le double de la fréquence la plus élevée à capter.
  • Les filtres anti-repliement éliminent les hautes fréquences avant l’échantillonnage.
  • Le nombre de bits audio est égal à fréquence d’échantillonnage × profondeur de quantification × nombre de canaux × nombre de secondes.
  • Le MIDI stocke des instructions d’interprétation, pas une forme d’onde enregistrée.
6

Compresse des données et choisis un format

La compression réduit le nombre de bits nécessaires pour stocker ou envoyer des données. Certaines méthodes remplacent les informations répétées par des descriptions plus courtes que l’on peut inverser exactement. D’autres suppriment des détails dans les images et le son pour obtenir des fichiers plus petits. Tu suivras des codes simples, tiendras compte des informations nécessaires à un décodeur et choisiras un format selon ce qui doit être préservé. Un fichier destiné à être modifié ou récupéré exactement n’a pas les mêmes besoins qu’un flux final destiné à l’écoute ou au visionnage.

6.1 Les codes sans perte et leurs limites

La compression sans perte permet à la décompression de reconstruire exactement les bits d’origine. Le texte, les fichiers de programme, les feuilles de calcul et les autres données qui doivent rester exactes ont besoin de cette propriété. ZIP, PNG, GIF et FLAC sont des formats sans perte connus. Ils exploitent la redondance : des informations répétées ou prévisibles qui peuvent être décrites plus brièvement.

Décrire les suites répétées

Le codage par plages remplace des symboles identiques consécutifs par un nombre et le symbole. La chaîne de 18 caractères « AAAAAABBBCCCCCCCCD » devient « 6A3B8C1D », soit huit caractères selon cette convention de nombre et symbole. Le décodage développe chaque paire : six A, trois B, huit C et un D.

La même idée convient aux zones d’image de couleur uniforme. La ligne de pixels 0000000011110000 peut être décrite comme huit zéros, quatre uns et quatre zéros. Un fichier réel doit définir comment les nombres et les symboles sont stockés afin que le décodage soit sans ambiguïté.

Les suites courtes peuvent augmenter la taille avec le codage par plages. « ABCD » devient « 1A1B1C1D », ce qui double le nombre de caractères avant même tout en-tête. La compression ne fonctionne que si les économies dépassent le coût de la description du motif.

Faire référence à une séquence répétée

Une méthode par dictionnaire remplace une séquence répétée par une référence. Les méthodes de la famille LZ sont à la base de formats comme ZIP et PNG. Dans « salut et toi salut », le second « salut » peut être remplacé par une instruction indiquant de reculer de 13 caractères et d’en copier cinq. Les espaces comptent comme des caractères. Le décodeur dispose déjà de ce texte antérieur et peut reproduire la séquence à partir de la référence.

Donner des codes plus courts aux symboles fréquents

Un code de longueur variable utilise des nombres de bits différents selon les symboles. Le codage de Huffman construit des codes à partir des fréquences des symboles. Dans « ABRACADABRA », A apparaît cinq fois, B et R deux fois chacun, et C et D une fois chacun. Un code de longueur fixe pour cinq symboles nécessite trois bits par symbole, soit 33 bits pour onze lettres.

Un code préfixe adapté est A = 0, B = 10, R = 110, C = 1110 et D = 1111. Les données codées utilisent 5×1+2×2+2×3+1×4+1×4=23 bits. La table des codes ajoute un surcoût de stockage : 23 bits seuls ne représentent donc pas la taille complète du fichier.

Un code préfixe est tel qu’aucun code de symbole ne constitue le début du code d’un autre symbole. Lire 0110 donne donc A suivi de R sans avoir besoin de séparateurs. Cette propriété permet à un décodeur de Huffman de reconnaître un symbole dès que son code se termine.

Le décodeur doit connaître la convention de codage ainsi que les données. Pour un flux de type Huffman, il lui faut la correspondance entre symboles et codes ; pour le codage par plages, il doit distinguer un nombre d’un symbole. Un petit message peut économiser des bits de données tout en augmentant en taille totale lorsque cette description est incluse. Compare les tailles complètes d’origine et après codage pour déterminer si une méthode a effectivement réduit le fichier.

Mesurer les économies et reconnaître les limites

Le rapport de compression est la taille d’origine divisée par la taille compressée. Réduire 6 MB à 2 MB donne 3:1. Utilise la même unité des deux côtés.

Aucune méthode sans perte ne peut raccourcir tous les fichiers possibles. Il existe 2n entrées différentes de n bits, mais seulement 2n−1 suites de bits de moins de n bits. Une récupération exacte exige que des entrées différentes restent distinctes : elles ne peuvent donc pas toutes recevoir des sorties plus courtes. Les données aléatoires et les fichiers déjà compressés diminuent souvent peu ou augmentent à cause des informations supplémentaires.

Points clés

  • La décompression sans perte reproduit exactement les bits d’origine.
  • Le codage par plages décrit les symboles identiques consécutifs à l’aide de nombres d’occurrences.
  • Les méthodes par dictionnaire remplacent les séquences répétées par des références.
  • Le codage de Huffman attribue des codes plus courts à partir des fréquences des symboles.
  • Un code préfixe permet de repérer les frontières entre symboles sans séparateurs.
  • Le rapport de compression compare la taille d’origine à la taille compressée.
  • Aucune méthode sans perte ne raccourcit toutes les entrées possibles.

6.2 Formats avec perte et choix de qualité

La compression avec perte supprime des informations pour réduire la taille d’un fichier. La décompression crée une version proche de l’original, dont certains détails ont définitivement disparu. Les photographies, la musique, la parole et la vidéo peuvent tolérer certaines pertes que le texte ou les données de programme, qui doivent rester exacts, ne peuvent pas accepter.

Compresser les images selon leur importance visuelle

JPEG s’appuie sur les différences de sensibilité de la vision humaine à la luminosité, à la couleur et aux détails fins. Un JPEG typique réduit la résolution des détails fins de couleur et arrondit les détails fins de l’image représentés dans des blocs de 8 × 8. Son réglage de qualité détermine la quantité d’informations éliminées. Une compression plus forte peut produire des blocs apparents, du flou ou des effets de résonance près des contours nets.

Une photographie peut souvent atteindre environ 10:1 avec peu de perte visible. À ce rapport, une image contenant 6 220 800 octets de données brutes de pixels utiliserait environ 622 080 octets compressés, soit à peu près 0,6 MB. Ce rapport est un exemple, pas une propriété fixe de tous les JPEG.

Compresser le son selon ce qui peut être entendu

MP3 et AAC utilisent le codage perceptuel. Un son faible peut être masqué par un son plus fort à une fréquence proche : l’encodeur peut donc consacrer moins de bits aux informations que l’auditeur a peu de chances d’entendre. Un fichier plus petit peut tout de même produire un son très proche de l’original.

Pour un débit binaire constant, la taille en bits est égale au débit binaire multiplié par la durée. À 128 kbit/s, un enregistrement de trois minutes nécessite 128 000×180=23 040 000 bits, soit 2 880 000 octets, environ 2,9 MB. Cela représente environ un onzième des 1 411,2 kbit/s du son non compressé d’un CD. Le débit compressé décrit déjà le flux codé ; ne le multiplie pas une nouvelle fois par la profondeur de quantification d’origine.

Exploiter les ressemblances entre images vidéo

Les images voisines montrent souvent presque la même scène. Les formats vidéo comme H.264 et AV1 compressent les détails des images et décrivent de nombreuses images au moyen des changements ou de prédictions à partir d’autres images. Cela supprime les informations répétées dans le temps ainsi qu’à l’intérieur de chaque image.

Adapter le format à l’usage
UsageChoix adaptéRaison
Texte, code ou données à conserver exactementArchive sans perteChaque bit doit être préservé
Photo à partagerJPEG ou autre format d’image avec pertePetite taille avec une perte visuelle acceptable
Capture d’écran ou logoPNGPréserve les contours nets et les aplats de couleur
Musique en streamingAAC, MP3 ou OpusÉconomise la capacité de transfert
Master audio à archiverFLACRécupération exacte des échantillons audio

Garde un original sans perte pour les modifications futures. Des décodages et réencodages répétés avec perte peuvent ajouter une perte de génération. Convertir en PNG un JPEG déjà compressé avec perte préserve ses pixels décodés actuels, mais ne peut pas restaurer les détails supprimés auparavant.

Une compression plus forte peut coûter en qualité, en temps de traitement ou les deux. Le choix utile dépend du contenu du fichier et de son utilisation ; le fichier le plus petit n’est pas toujours le plus utile.

Points clés

  • La compression avec perte supprime définitivement certaines informations.
  • JPEG exploite la sensibilité visuelle ; l’audio avec perte utilise le codage perceptuel.
  • La taille d’un flux compressé est égale au débit binaire × la durée.
  • Garde un original sans perte lorsque des modifications futures ou une récupération exacte sont importantes.
  • Convertir un fichier avec perte dans un format sans perte ne peut pas récupérer les informations éliminées.

Binaire et représentation des données : exemples

6 Leçons Interactives

1

Construis un code, puis lis ses bits

12 étapes
Compte les configurations nécessaires à un champ, convertis ses valeurs et relie les groupes binaires à la notation hexadécimale.
  1. 1
    IntroductionUne configuration, plusieurs lectures

    Une configuration stockée possède deux caractéristiques distinctes : le nombre de bits qu’elle occupe et la manière dont un lecteur les interprète. Les huit bits 01000001 peuvent représenter un nombre, un caractère de texte ou une intensité de couleur.

    Nous allons d’abord choisir assez de bits pour distinguer un ensemble de valeurs, puis lire une configuration numérique à l’aide des valeurs de position binaires et de l’hexadécimal. Changer de notation modifie ce que tu écris, tout en conservant la valeur.

  2. 2
    ExplicationCompte les possibilités par doublement

    Chaque bit offre deux possibilités, donc chaque bit ajouté double le nombre de configurations. Deux bits donnent 00, 01, 10 et 11 ; trois bits donnent huit configurations. En général, n bits donnent 2n configurations.

    Pour identifier 26 lettres, quatre bits ne suffisent pas, car ils ne donnent que 16 configurations. Cinq bits en donnent 32 et en laissent six inutilisées. Un code n’a pas à utiliser toutes les configurations disponibles.

  3. 3
    DéfiChoisis un champ pour des catégories

    Un appareil doit distinguer 90 catégories. Quel est le plus petit nombre de bits permettant de les coder ? Combien de configurations resteront inutilisées ?

    ---reveal---

    Six bits donnent 64 configurations, ce qui est insuffisant. Sept en donnent 128 : le champ nécessite donc sept bits et laisse 38 configurations inutilisées. Le plus grand numéro pourrait être 89 si la numérotation commence à zéro ; cette dernière valeur est différente du nombre de 90 catégories.

  4. 4
    LienLis la casse de la lettre de l’unité

    Un octet comporte huit bits. La casse de la lettre de l’unité compte donc : b signifie bit et B signifie octet. Une liaison à 40 Mbit/s a un débit utile maximal théorique de 5 MB/s avant la surcharge protocolaire.

    Les préfixes des unités comptent aussi. Un MB signifie un million d’octets, tandis qu’un MiB signifie 1 048 576 octets. Convertir une quantité stockée de MB en MiB change la valeur numérique affichée sans supprimer de données.

  5. 5
    ExplicationAligne les positions binaires

    La valeur de la position entière la plus à droite est 1. En allant vers la gauche, on obtient 2, 4, 8, 16, 32, 64, et ainsi de suite. Un 1 sélectionne une valeur de position et un 0 ne la sélectionne pas.

    Pour 101101, les valeurs de position sélectionnées sont 32, 8, 4 et 1, soit un total de 45. Des zéros à gauche peuvent remplir les positions disponibles sans changer ces valeurs. Un zéro manquant à l’intérieur de la configuration déplacerait certains chiffres et changerait la valeur.

  6. 6
    ExempleSélectionne les puissances pour 156

    La plus grande puissance de deux qui ne dépasse pas 156 est 128. Soustrais-la : il reste 28. Les valeurs de position 64 et 32 sont trop grandes ; attribue-leur donc des zéros.

    Soustrais 16 de 28 : il reste 12. Soustrais 8 : il reste 4, puis soustrais 4 pour atteindre zéro. Les deux dernières positions, 2 et 1, reçoivent des zéros. Pour les positions allant de 128 à 1, les bits sont 10011100. Conserver chaque position inutilisée empêche les puissances choisies de se décaler.

  7. 7
    ConseilInverse l’ordre des restes pour un entier

    Les divisions successives sont une autre façon d’obtenir la même configuration. Diviser un entier par deux donne son dernier bit comme reste. Diviser le quotient permet de trouver le bit suivant vers la gauche.

    Pour 156, les restes arrivent dans l’ordre 0, 0, 1, 1, 1, 0, 0, 1. Lis-les du dernier au premier pour obtenir 10011100. L’ordre inverse est nécessaire, car la division découvre d’abord la position de poids faible.

  8. 8
    DéfiConvertis et vérifie une nouvelle valeur

    Écris le nombre décimal 109 sur huit positions binaires, puis utilise ton résultat pour expliquer si 109 est impair.

    ---reveal---

    Les puissances choisies sont 64, 32, 8, 4 et 1 : la configuration est donc 01101101. Leur somme est 109, ce qui vérifie la conversion. Le dernier bit vaut 1 ; toutes les autres positions contribuent des quantités paires, ce qui donne un entier impair. Le zéro initial complète l’octet sans changer la valeur.

  9. 9
    ExplicationRemplace les demi-octets par des chiffres hexadécimaux

    L’hexadécimal comporte seize chiffres : de 0 à 9, puis de A à F pour les valeurs de dix à quinze. Quatre bits distinguent aussi seize configurations, donc chaque chiffre hexadécimal désigne un demi-octet.

    Sépare 10011100 en 1001 et 1100. Le premier groupe vaut neuf et le second douze, écrit C. Le résultat est 0x9C. L’hexadécimal utilise quatre fois moins de chiffres que le binaire tout en conservant un lien direct avec les groupes à l’intérieur de l’octet.

  10. 10
    ExempleRegroupe une courte configuration par la droite

    Pour convertir 101101, forme des groupes à partir de la droite : 10 et 1101. Complète le groupe le plus à gauche pour obtenir 0010. Les groupes donnent maintenant les chiffres hexadécimaux 2 et D : la valeur est donc 0x2D.

    Vérifie avec les valeurs de position hexadécimales : deux fois seize plus treize fois un donne 45. Regrouper à partir de la gauche placerait le dernier groupe court à la mauvaise position. Dans un développement hexadécimal complet, chaque chiffre doit conserver ses quatre bits.

  11. 11
    DéfiRelie les bits, leur nombre et l’hexadécimal

    Un champ non signé de taille fixe stocke 0xB4. Combien de bits ses deux chiffres hexadécimaux représentent-ils, quelle est sa configuration binaire et quelle valeur décimale contient-il ?

    ---reveal---

    Deux chiffres hexadécimaux représentent huit bits. B se développe en 1011 et 4 en 0100 : l’octet est donc 10110100. La somme des valeurs de position sélectionnées est 128 + 32 + 16 + 4 = 180. De façon équivalente, onze fois seize plus quatre donne 180.

  12. 12
    RécapitulatifTrois vérifications pour une valeur stockée

    Vérifie séparément la capacité, la notation et les unités. Un champ doit offrir assez de configurations pour toutes ses valeurs possibles. Le binaire sélectionne des puissances de deux ; l’hexadécimal regroupe ces bits par quatre à partir de la droite.

    La valeur stockée reste la même lorsqu’on change de base d’écriture ou d’unité de stockage. Une autre interprétation des données peut donner un sens différent aux mêmes bits : la configuration et sa règle de lecture vont donc ensemble.

2

Lis des valeurs signées et préserve leur nombre de bits

11 étapes
Travaille avec les limites des valeurs non signées, le codage en complément à deux et l’augmentation du nombre de bits d’une valeur négative.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionUn nombre de bits nécessite une interprétation
  2. 2
    ExplicationRéserve une configuration pour zéro
  3. 3
    ExempleSuis le rebouclage non signé
  4. 4
    DéfiPrévois assez de place pour un décompte
  5. 5
    ExplicationDonne un poids négatif au bit initial
  6. 6
    ExempleCommence la configuration de −45
  7. 7
    ExempleTermine le changement de signe
  8. 8
    DéfiCode un autre entier négatif
  9. 9
    Point cléÉtends le signe, pas seulement les zéros
  10. 10
    DéfiAugmente le nombre de bits avant de prendre l’opposé
  11. 11
    RécapitulatifGarde la règle avec la configuration
3

Construis un codage à virgule flottante

17 étapes
Convertis une fraction binaire, assemble les champs IEEE 754 et raisonne sur l’arrondi et l’espacement.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionUne valeur et une échelle
  2. 2
    ExplicationLis les positions fractionnaires
  3. 3
    ExempleProduis une fraction à développement fini
  4. 4
    Point cléPrévois si le développement est fini
  5. 5
    DéfiTrouve l’échelle en virgule fixe
  6. 6
    ExplicationReconnais les champs
  7. 7
    ExempleÉcris 6,25 en binaire
  8. 8
    ExempleCode l’exposant
  9. 9
    ExempleStocke uniquement la fraction
  10. 10
    ExempleRéunis les trois champs
  11. 11
    DéfiDécode une autre valeur normale
  12. 12
    ConseilClasse d’abord les configurations réservées
  13. 13
    ExplicationDistingue la plage de valeurs de l’espacement
  14. 14
    Point cléObserve l’augmentation de l’écart
  15. 15
    DéfiArrondis un entier situé à mi-chemin
  16. 16
    DéfiChoisis un type pour un montant exact
  17. 17
    RécapitulatifLis le format avant la valeur
4

Suis le passage du texte des caractères aux octets

12 étapes
Distingue les codes ASCII, les points de code Unicode et les octets encodés, puis diagnostique une incompatibilité de décodage.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionLe texte nécessite une convention commune
  2. 2
    ExplicationTrouve le code de caractère ASCII
  3. 3
    ExempleEncode les lettres et la ponctuation
  4. 4
    DéfiRetrouve la valeur d’un chiffre
  5. 5
    LienPourquoi un seul octet ne suffisait pas
  6. 6
    ExplicationIdentifie avant d’encoder
  7. 7
    ExempleSépare les bits de é
  8. 8
    ExempleComplète les deux octets encodés
  9. 9
    DéfiCompte une chaîne mêlant plusieurs écritures
  10. 10
    Point cléUne même apparence peut avoir deux formes
  11. 11
    DéfiDiagnostique le mot illisible
  12. 12
    RécapitulatifDistingue trois façons de compter
5

Estime l’espace de stockage des images et des enregistrements

15 étapes
Utilise le nombre de pixels et d’échantillons, distingue la profondeur en bits de la résolution et compare le stockage brut aux formats fondés sur des instructions.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionCompte les valeurs, puis les bits par valeur
  2. 2
    ExplicationConstruis un pixel RVB
  3. 3
    LienAjoute de la transparence ou utilise une palette
  4. 4
    DéfiLis une couleur et sa profondeur
  5. 5
    ExempleCommence par la grille de pixels
  6. 6
    ExempleConvertis la taille de l’image en octets
  7. 7
    DéfiAgrandis la grille et ajoute des images
  8. 8
    Point cléUn dessin peut stocker des instructions
  9. 9
    ExplicationÉchantillonne séparément le temps et l’amplitude
  10. 10
    ExplicationFiltre avant l’échantillonnage
  11. 11
    ExempleTrouve d’abord le débit audio
  12. 12
    DéfiCalcule la taille d’un autre enregistrement
  13. 13
    LienDes notes peuvent remplacer une forme d’onde
  14. 14
    DéfiCompare deux changements de stockage
  15. 15
    RécapitulatifGarde les facteurs et les unités visibles
6

Compresse sans confondre taille et fidélité

12 étapes
Applique le codage par plages et les codes de longueur variable, tiens compte des informations supplémentaires et détermine quand des informations peuvent être éliminées.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDeux façons d’obtenir un fichier plus petit
  2. 2
    ExplicationRemplace les suites par des nombres
  3. 3
    DéfiEssaie des suites longues et courtes
  4. 4
    LienPointe vers une séquence déjà rencontrée
  5. 5
    ExempleDonne des codes courts aux symboles fréquents
  6. 6
    DéfiDécode le flux dans l’ordre
  7. 7
    Point cléCertaines entrées doivent rester volumineuses
  8. 8
    ExplicationSupprime les détails multimédias moins perceptibles
  9. 9
    ExempleUtilise directement un débit binaire compressé
  10. 10
    DéfiProtège un original tout en partageant une copie
  11. 11
    DéfiCompare un rapport à un débit de transfert
  12. 12
    RécapitulatifAdapte la garantie à l’usage

Binaire et représentation des données : QCM

50 Questions Pratiques en 5 séries

Série 1 : Lis des configurations et estime l’espace de stockage10 Questions Pratiques

Question 1 sur 10

Un champ d’état doit distinguer 70 états différents. Quel est le plus petit nombre de bits nécessaire ?
  1. 6 bits
  2. 8 bits
  3. 7 bits
  4. 70 bits
Afficher la réponseMasquer la réponse
Réponse : C
Six bits donnent 64 configurations, ce qui ne permet pas de couvrir 70 états. Sept bits donnent 128 configurations : sept est donc le plus petit nombre de bits qui convient. Choisir six parce que 64 est proche laisserait certains états sans configuration propre.

Question 2 sur 10

Quelle valeur décimale le nombre binaire 1010110 représente-t-il ?
  1. 86
  2. 84
  3. 106
  4. 43
Afficher la réponseMasquer la réponse
Réponse : A
Les bits à 1 occupent les positions de valeurs 64, 16, 4 et 2, soit un total de 86. Le zéro à la position des unités n’ajoute rien. Lire 101011 comme 43 supprime le zéro final, ce qui retire une position et divise la valeur par deux au lieu de la préserver.

Question 3 sur 10

Comment l’entier binaire 1110101 s’écrit-il en hexadécimal ?
  1. 0xE5
  2. 0x7A
  3. 0xD1
  4. 0x75
Afficher la réponseMasquer la réponse
Réponse : D
Regroupe les bits à partir de la droite pour obtenir 0111 0101. Ces demi-octets valent 7 et 5, ce qui donne 0x75. Regrouper à partir de la gauche sous la forme 1110 101 et compléter le second groupe changerait les valeurs de position et produirait à tort 0xE5.

Question 4 sur 10

Quel est le plus grand entier non signé représentable sur 12 bits ?
  1. 4 096
  2. 4 095
  3. 2 047
  4. 4 097
Afficher la réponseMasquer la réponse
Réponse : B
Douze bits donnent 4 096 configurations, et la première représente zéro. La plus grande valeur non signée est donc 4 095. Utiliser 4 096 comme maximum revient à confondre le nombre de configurations disponibles avec la dernière valeur d’un décompte qui commence à zéro.

Question 5 sur 10

Quelle valeur 11101010 représente-t-il comme entier en complément à deux sur 8 bits ?
  1. −106
  2. −22
  3. 234
  4. −21
Afficher la réponseMasquer la réponse
Réponse : B
Le bit de poids fort signé contribue −128 et les autres bits à 1 contribuent 64 + 32 + 8 + 2 = 106, ce qui donne −22. Lire 106 comme la valeur absolue et y ajouter un signe moins donne −106, mais cela correspond à la représentation en signe et valeur absolue, pas au complément à deux.

Question 6 sur 10

Quelle valeur décimale la fraction binaire 10,011 représente-t-elle ?
  1. 2,75
  2. 2,3
  3. 2,625
  4. 2,375
Afficher la réponseMasquer la réponse
Réponse : D
La partie entière vaut 2 et la fraction sélectionne un quart plus un huitième. Leur somme est 0,375 : la valeur complète est donc 2,375. Utiliser 2,75 revient à traiter le premier 1 fractionnaire comme un demi et à déplacer les deux positions fractionnaires sélectionnées d’une place vers la gauche.

Question 7 sur 10

En ASCII, « 0 » a le code 48. Quel est le code du caractère « 8 » ?
  1. 56
  2. 8
  3. 55
  4. 64
Afficher la réponseMasquer la réponse
Réponse : A
Les caractères ASCII des chiffres occupent des codes consécutifs, à partir de 48 pour « 0 ». Avancer de huit positions donne 56 pour « 8 ». La valeur entière 8 a une représentation différente ; stocker le caractère nécessite son code, et non la valeur que sa forme désigne.

Question 8 sur 10

Quelles valeurs de canaux RVB la couleur Web #4080C0 indique-t-elle ?
  1. (40 ; 80 ; 120)
  2. (192 ; 128 ; 64)
  3. (64 ; 128 ; 192)
  4. (4 ; 8 ; 12)
Afficher la réponseMasquer la réponse
Réponse : C
Sépare le code couleur en paires hexadécimales 40, 80 et C0. Leurs valeurs décimales sont 64, 128 et 192, dans l’ordre rouge, vert, bleu. Traiter les paires comme des nombres décimaux fait perdre les valeurs de position en base 16, tandis qu’inverser les paires échange le rouge et le bleu.

Question 9 sur 10

Combien d’octets de données d’échantillons non compressées faut-il pour 6 secondes d’audio mono à 12 000 Hz sur 16 bits ?
  1. 72 000 octets
  2. 288 000 octets
  3. 1 152 000 octets
  4. 144 000 octets
Afficher la réponseMasquer la réponse
Réponse : D
Il y a 12 000 × 6 = 72 000 échantillons dans le canal unique, chacun utilisant deux octets. Le total est de 144 000 octets. Indiquer 1 152 000 revient à donner le nombre de bits comme s’il s’agissait d’octets ; la stéréo doublerait la taille, mais cet enregistrement est mono.

Question 10 sur 10

Un code sans perte utilise A = 0, B = 10, C = 110 et D = 111. Un message contient 40 A, 5 B, 2 C et 1 D. Une table obligatoire ajoute 16 bits. Combien de bits sont économisés par rapport à un code fixe sur 2 bits sans table ?
  1. 21 bits
  2. 37 bits
  3. 16 bits
  4. 5 bits
Afficher la réponseMasquer la réponse
Réponse : A
Les données à longueur variable utilisent 40 + 10 + 6 + 3 = 59 bits, et leur table porte le total à 75. Le code fixe utilise 48 × 2 = 96 bits : l’économie est donc de 21 bits. Affirmer que 37 bits sont économisés revient à ignorer la table obligatoire de 16 bits.
Série 2 : Applique les formats et calcule la taille des données10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Une liaison transfère des données à 48 Mbit/s. Sans tenir compte de la surcharge protocolaire, combien de mégaoctets décimaux peut-elle transférer en 5 secondes ?
  1. 6 MB
  2. 30 MB
  3. 240 MB
  4. 3 MB
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Comment 74 s’écrit-il comme valeur binaire non signée sur 8 bits ?
  1. 01010010
  2. 10010100
  3. 01001001
  4. 01001010
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Comment −19 est-il représenté en complément à deux sur 8 bits ?
  1. 11101101
  2. 11101100
  3. 10010011
  4. 00010011
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Une valeur binary32 normale a un signe 0, un exposant stocké de 125 et les bits de fraction 100 suivis de zéros. Quelle est sa valeur décimale ?
  1. 1,5
  2. 0,25
  3. 0,375
  4. 0,1875
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une valeur positive est finie en binary64, mais provoque un dépassement de capacité en binary32 avec l’arrondi par défaut. Quel aspect de binary32 a été dépassé ?
  1. Son nombre d’entiers
  2. Son nombre de décimales
  3. Sa plage de valeurs finies
  4. Son format de texte
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Combien d’octets UTF-8 occupe « AЖ中😀 » si Ж est U+0416, 中 est U+4E2D et 😀 est U+1F600 ?
  1. 10 octets
  2. 4 octets
  3. 8 octets
  4. 12 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une image matricielle utilise une palette d’exactement 32 couleurs. Quel est le plus petit nombre fixe de bits nécessaire pour chaque indice de pixel ?
  1. 4 bits
  2. 6 bits
  3. 32 bits
  4. 5 bits
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une image RVB non compressée de 300 × 200 utilise 24 bits par pixel. Les deux dimensions sont doublées et un canal alpha sur 8 bits est ajouté. Quelle est la nouvelle taille des données de pixels ?
  1. 720 000 octets
  2. 960 000 octets
  3. 480 000 octets
  4. 240 000 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un enregistrement mono dure 4 secondes à 30 000 Hz avec des échantillons sur 12 bits. Après filtrage passe-bas, sa fréquence la plus élevée est de 14 kHz. Quelle est la taille des données brutes et la fréquence d’échantillonnage est-elle suffisante ?
  1. 180 000 octets ; fréquence insuffisante
  2. 180 000 octets ; fréquence suffisante
  3. 360 000 octets ; fréquence suffisante
  4. 120 000 octets ; fréquence insuffisante
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un flux audio à débit constant utilise 96 kbit/s pendant 50 secondes. Sans tenir compte des en-têtes, quelle est sa taille en octets décimaux ?
  1. 600 000 octets
  2. 4 800 000 octets
  3. 6 000 000 octets
  4. 300 000 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Interprète les mêmes bits de différentes façons10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Quelle valeur décimale 0x2B6 représente-t-il ?
  1. 678
  2. 710
  3. 438
  4. 694
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un compteur non signé sur 8 bits utilise le rebouclage. Il commence à 247 et augmente de 28. Quelle valeur est stockée ?
  1. 19
  2. 20
  3. 255
  4. 275
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un champ en complément à deux sur 6 bits contient 101101. Son nombre de bits passe à 8 sans changer sa valeur. Quels sont la nouvelle configuration et la valeur décimale ?
  1. 00101101 ; −19
  2. 11101101 ; −45
  3. 11101101 ; −19
  4. 10101101 ; −19
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Quel est le pas entre deux valeurs voisines lorsqu’un format non signé à virgule fixe comporte six bits fractionnaires ?
  1. 1/6
  2. 1/64
  3. 1/32
  4. 1/128
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Quels sont le signe, l’exposant stocké et le début du champ de fraction lorsque −13,5 est codé comme nombre binary32 normal ?
  1. 1 ; 130 ; 11011…
  2. 1 ; 130 ; 1011…
  3. 1 ; 124 ; 1011…
  4. 1 ; 131 ; 1011…
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Le texte « 0064 » est stocké à raison d’un octet ASCII par caractère. Combien d’octets occupe-t-il ?
  1. 4 octets
  2. 1 octet
  3. 2 octets
  4. 8 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Les octets de « é » en UTF-8 sont C3 A9. Un lecteur les interprète comme deux caractères Windows-1252. Quelle est la cause directe de l’affichage illisible ?
  1. L’auteur a utilisé trop peu de points de code.
  2. Le texte a dépassé un octet par fichier.
  3. Le lecteur a utilisé le mauvais encodage.
  4. Le lecteur a changé le numéro Unicode.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

La largeur d’une image matricielle est triplée et sa hauteur doublée, tandis que la profondeur de couleur reste fixe. Par quel facteur la taille de ses données brutes de pixels augmente-t-elle ?
  1. 5
  2. 3
  3. 12
  4. 6
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un code préfixe est défini par A = 0, B = 10, C = 110, D = 111. Quel message est codé par 1011001110 ?
  1. BCDAA
  2. BACDA
  3. BCADA
  4. CBADA
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une personne convertit une photographie JPEG existante en PNG sans changer ses pixels décodés. Que deviennent les détails précédemment éliminés par JPEG ?
  1. Ils réapparaissent à la réouverture du PNG.
  2. Ils réapparaissent si le PNG est plus grand.
  3. Ils réapparaissent comme métadonnées.
  4. Ils restent absents de l’image.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Diagnostique des erreurs et relie des représentations10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un fichier contient 3 145 728 octets. Quelle est sa taille en MiB ?
  1. 3 MiB
  2. 3,145728 MiB
  3. 3 072 MiB
  4. 24 MiB
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une personne divise 90 par 2 successivement et écrit les restes dans l’ordre obtenu : 0101101. Quelle est l’écriture binaire correcte de 90 ?
  1. 0101101
  2. 1010110
  3. 1011010
  4. 1101010
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une visionneuse de fichiers affiche les trois octets 0x07, 0xB2 et 0xF0. Combien de bits ces octets contiennent-ils ?
  1. 12 bits
  2. 6 bits
  3. 48 bits
  4. 24 bits
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un capteur enregistre des décomptes entiers de 0 à 8 192 inclus. Chaque décompte utilise le plus petit nombre possible de bits non signés et les champs sont regroupés sans remplissage. Combien d’octets contiennent 40 décomptes ?
  1. 65 octets
  2. 70 octets
  3. 80 octets
  4. 560 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une configuration binary32 a un signe 1, un exposant composé uniquement de uns et une fraction non nulle. Quelle est sa catégorie, et changer seulement le bit de signe peut-il en faire un nombre fini ?
  1. Infini ; changer le signe le laisse infini
  2. Dénormalisé ; changer le signe le rend normal
  3. Fini ; changer le signe le laisse fini
  4. NaN ; changer le signe le laisse NaN
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Deux valeurs binary32 normales positives voisines dans l’intervalle de 2²⁵ à 2²⁶ diffèrent de 4. Que fait l’arrondi par défaut de l’entier exact 33 554 435 ?
  1. Il stocke 33 554 432.
  2. Il stocke exactement 33 554 435.
  3. Il stocke 33 554 436.
  4. Il produit l’infini positif par dépassement.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une limite de stockage autorise 18 octets UTF-8. Une chaîne contient uniquement le caractère « 中 » (U+4E2D), sans autre donnée comptabilisée. Combien de copies peuvent tenir ?
  1. 6
  2. 18
  3. 9
  4. 4
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une image de 20 × 10 utilise 16 entrées de palette, chacune stockée en RVB sur 24 bits, et des indices de pixels regroupés sur 4 bits. Sans tenir compte du reste, combien d’octets sont nécessaires ?
  1. 100 octets
  2. 148 octets
  3. 600 octets
  4. 196 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un signal filtré contient des fréquences allant jusqu’à 17 kHz. Quelle est la plus petite fréquence d’échantillonnage entière en kHz qui respecte la règle stricte d’échantillonnage ?
  1. 17 kHz
  2. 35 kHz
  3. 34 kHz
  4. 33 kHz
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un décodeur doit retrouver exactement chaque entrée possible sur 10 bits. Il existe 1 024 entrées de ce type. Pourquoi une méthode sans perte ne peut-elle pas toutes les coder sur moins de 10 bits ?
  1. Seules 1 023 suites de bits ont moins de 10 bits.
  2. Exactement 1 024 suites de bits ont moins de 10 bits.
  3. Toute suite de bits plus courte doit se terminer par 1.
  4. Toute entrée doit garder les positions initiales de ses bits.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Combine les limites, les encodages et les choix de taille10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un entier binaire s’écrit 110011. Quelle valeur décimale obtient-on en ajoutant un zéro à sa droite, sans limite du nombre de bits ?
  1. 51
  2. 52
  3. 102
  4. 204
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Quelle est la plus petite valeur d’un entier en complément à deux sur 10 bits ?
  1. −511
  2. −512
  3. −1 024
  4. −1 023
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un format non signé à virgule fixe sur 8 bits comporte cinq bits pour la partie entière et trois pour la partie fractionnaire. Une valeur de 6,375 est stockée exactement. Quel entier non signé la configuration brute sur 8 bits représente-t-elle lorsqu’on ignore l’échelle de la virgule fixe ?
  1. 51
  2. 6
  3. 48
  4. 102
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Une valeur en complément à deux sur 8 bits est 10000000. Son signe est étendu à 16 bits, puis elle est changée de signe sur 16 bits. Quelle configuration obtient-on ?
  1. 1111111110000000
  2. 0000000001111111
  3. 1000000000000000
  4. 0000000010000000
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

En binary32, deux valeurs représentables voisines proches de 2²⁴ sont 16 777 216 et 16 777 218. Quel résultat est stocké lors de la conversion de l’entier exact 16 777 217 avec l’arrondi au plus proche, au pair en cas d’égalité ?
  1. 16 777 216
  2. 16 777 217
  3. 16 777 218
  4. 16 777 220
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un champ de texte contient « 09 » sous forme des octets ASCII 0x30 0x39. Quelle valeur numérique obtient-on en interprétant ces caractères comme un entier décimal ?
  1. 57
  2. 9
  3. 3 039
  4. 48
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un enregistreur conserve des échantillons stéréo sur 16 bits à 24 kHz. Il doit capter un signal filtré dont la fréquence maximale est de 10 kHz et rester dans la limite de 6 000 000 d’octets de données brutes d’échantillons. Quelle est la durée entière maximale en secondes ?
  1. 63 secondes
  2. 125 secondes
  3. 31 secondes
  4. 62 secondes
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une vidéo muette non compressée a 160 × 120 pixels, 24 bits par pixel et 25 images/s. Sans tenir compte des en-têtes, combien de secondes complètes tiennent dans 7,2 MB de stockage décimal ?
  1. 4 secondes
  2. 10 secondes
  3. 5 secondes
  4. 40 secondes
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un enregistrement garde sa fréquence d’échantillonnage et sa durée, mais passe de la stéréo sur 16 bits au mono sur 24 bits. Quelle fraction de la taille d’origine des données brutes d’échantillons reste-t-il ?
  1. 3/4
  2. 3/2
  3. 1/2
  4. 4/3
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un projet nécessite la récupération exacte d’un master audio modifié et une copie de diffusion de 90 secondes ne dépassant pas 1,8 MB de données codées. Quelle paire de choix satisfait les deux besoins ?
  1. Master MP3 ; diffusion constante à 160 kbit/s
  2. Master FLAC ; diffusion constante à 192 kbit/s
  3. Master FLAC ; diffusion constante à 160 kbit/s
  4. Master AAC ; diffusion constante à 128 kbit/s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

81 Mots-Clés, chacun avec sa définition

A

Arrondi au pair
L’arrondi au pair résout un cas d’arrondi exactement à mi-chemin en choisissant la valeur représentable dont le dernier bit du significande conservé est pair.
Un entier situé à mi-chemin en simple précision près de 2²⁴ peut être arrondi vers le bas, alors qu’une autre valeur à mi-chemin est arrondie vers le haut.
Artefact de compression
Un artefact de compression est une modification visible ou audible indésirable causée par les approximations introduites lors d’un codage avec perte.
Avec un réglage JPEG fort, le contour net d’une lettre peut devenir flou ou présenter des modifications en blocs dans les pixels voisins.
ASCII
ASCII est un code de caractères sur sept bits comportant 128 entrées pour les lettres de l’alphabet anglais, les chiffres, la ponctuation, l’espace et les caractères de contrôle.
Le point d’exclamation a le code ASCII 33 et est généralement stocké sous la forme de l’octet 00100001.

B

Base
La base d’un système de numération détermine le nombre de valeurs possibles pour un chiffre et le facteur entre deux valeurs de position entières voisines.
L’écriture « 10 » vaut deux en base 2, dix en base 10 et seize en base 16.
Biais d’exposant
Un biais d’exposant est une constante ajoutée à l’exposant réel pour que l’exposant stocké puisse être un champ de bits non signé.
Un exposant stocké binary32 de 126 donne un exposant réel de −1 après soustraction de son biais de 127.
Binaire
Le binaire est le système de numération en base 2, qui utilise les chiffres 0 et 1 avec des valeurs de position correspondant à des puissances de deux.
L’entier binaire 10010 sélectionne les positions de valeurs seize et deux : sa valeur décimale est donc dix-huit.
Bit
Un bit est un chiffre binaire qui prend l’une de deux valeurs, 0 ou 1, représentées par deux états physiques que le matériel peut distinguer.
Un indicateur d’état peut stocker un choix marche/arrêt dans un bit, un programme définissant quel état signifie « marche ».
Bit de poids faible
Le bit de poids faible est le bit le plus à droite d’un entier binaire ; il correspond à la contribution de la position des unités.
Le bit de poids faible de 10110 vaut 0 : l’entier est donc pair quels que soient ses autres bits.
Bit de poids fort
Le bit de poids fort est le bit le plus à gauche d’une configuration écrite de taille fixe ; il occupe la position de poids le plus élevé.
Dans un octet non signé, modifier le bit de poids fort change la valeur de 128 lorsque les autres bits restent fixes.
Bit de signe
Un bit de signe indique si une valeur signée est négative ; son interprétation dépend du format numérique.
En complément à deux, un 1 initial indique une valeur négative et possède aussi un poids de position négatif.
Bit implicite
Le bit implicite est le 1 initial supposé d’un significande binaire normal à virgule flottante, qui augmente la précision sans être stocké dans le champ de fraction.
Binary32 stocke 23 bits de fraction, mais possède 24 bits significatifs pour les valeurs normales, car le 1 initial est implicite.

C

Canal alpha
Un canal alpha stocke l’opacité d’un pixel séparément de sa couleur, en utilisant généralement 0 pour transparent et 255 pour opaque.
Un pixel RGBA utilise quatre valeurs de huit bits : son stockage brut est donc de quatre octets au lieu des trois du RVB.
Caractère de contrôle
Un caractère de contrôle est un code de texte qui dirige le traitement du texte sans imprimer de symbole visible ordinaire, comme la tabulation ou le saut de ligne.
Le code ASCII 10 est un saut de ligne : un fichier peut donc l’utiliser pour marquer une nouvelle ligne parmi les octets du texte.
Changement de signe
Le changement de signe transforme un nombre en son opposé additif ; en complément à deux, il s’effectue en inversant tous les bits puis en ajoutant un.
Changer le signe de la configuration de +6 sur huit bits donne celle de −6, tandis que la valeur minimale n’a pas d’opposé positif.
Chiffre hexadécimal
Un chiffre hexadécimal est un symbole de 0 à 9 ou de A à F qui donne une valeur de zéro à quinze dans une seule position en base 16.
Le chiffre hexadécimal E vaut quatorze, tandis que la valeur à deux chiffres 0x14 vaut vingt en décimal.
Codage de Huffman
Le codage de Huffman construit un code préfixe de longueur variable à partir des fréquences des symboles, en donnant des codes plus courts aux symboles fréquents pour réduire la taille des données.
Une lettre fréquente peut recevoir un code sur un bit, mais le fichier a aussi besoin d’informations permettant le décodage.
Codage par plages
Le codage par plages remplace une suite consécutive d’un même symbole par son nombre d’occurrences et le symbole ; il fonctionne mieux lorsque les suites identiques sont longues.
Selon une convention qui place le nombre avant le symbole, « MMMMMMNN » devient « 6M2N », tandis qu’une alternance de symboles peut augmenter la taille.
Codage perceptuel
Le codage perceptuel réduit les données multimédias selon la sensibilité humaine, en consacrant moins d’espace aux détails que les personnes ont peu de chances de remarquer.
Un encodeur audio peut supprimer une tonalité faible masquée par un son plus fort de fréquence proche dans une copie d’écoute MP3.
Code de caractère
Un code de caractère est le nombre attribué à un caractère par une table convenue, ce qui permet de stocker les symboles d’un texte sous forme de configurations de bits.
Le caractère « 3 » a le code ASCII 51, bien que sa valeur numérique soit trois.
Code préfixe
Un code préfixe est un code dont aucun mot de code ne constitue le début d’un autre, ce qui permet à un décodeur de reconnaître les symboles sans ajouter de séparateurs.
Avec A = 0, B = 10 et C = 11, les bits 011 se décodent immédiatement en A suivi de C.
Complément à deux
Le complément à deux est une représentation des entiers signés dont le bit de poids fort a un poids négatif et dont les autres bits conservent leurs poids binaires positifs.
La configuration 11111010 représente −6 dans un champ signé sur huit bits, mais 250 si elle est interprétée comme non signée.
Compression
La compression réduit les besoins de stockage ou de transfert en codant les données avec moins de bits ; la récupération exacte dépend du caractère sans perte de la méthode.
Une image codée plus petite se transfère plus vite sur la même liaison, car il faut envoyer moins de bits.
Compression avec perte
La compression avec perte élimine définitivement certaines informations et produit une représentation plus petite qui reconstruit une approximation de l’original.
Un JPEG de haute qualité peut sembler proche de la photo tout en étant incapable de reproduire exactement ses pixels d’origine.
Compression par dictionnaire
La compression par dictionnaire réduit les données en remplaçant les séquences répétées par des références à des séquences connues du décodeur ou reconstruites par celui-ci.
Une phrase répétée peut être représentée par une distance de retour dans le texte décodé et une longueur à copier.
Compression sans perte
La compression sans perte produit un encodage à partir duquel les bits d’origine peuvent être reconstruits exactement, y compris chaque valeur de texte ou d’échantillon.
Une archive FLAC peut restituer exactement les échantillons audio, même si le nombre d’octets stockés est inférieur.

D

Débit binaire
Un débit binaire est le nombre de bits codés ou transférés par seconde, généralement exprimé en bit/s, kbit/s ou Mbit/s.
Un débit de transfert de 16 Mbit/s correspond à 2 MB/s avant de tenir compte de la surcharge protocolaire.
Demi-octet
Un demi-octet est un groupe de quatre bits qui donne seize configurations possibles et correspond exactement à un chiffre hexadécimal.
L’octet 10100111 se décompose en demi-octets 1010 et 0111, qui correspondent aux chiffres hexadécimaux A et 7.
Dépassement de capacité
Un dépassement de capacité se produit lorsqu’un résultat calculé sort de la plage des valeurs que le format numérique choisi peut représenter.
Pour un compteur non signé sur huit bits, un résultat de 260 est hors de la plage de 0 à 255 et nécessite une gestion du dépassement.
Dépassement de capacité par défaut
Un dépassement de capacité par défaut concerne les résultats qui deviennent trop petits pour une représentation normale en virgule flottante et peuvent être stockés comme valeurs dénormalisées ou comme zéro.
Un calcul qui s’approche de zéro peut perdre en précision relative lorsque ses résultats entrent dans la plage des valeurs dénormalisées.
Développement binaire fini
Un développement binaire fini se termine après un nombre limité de positions binaires ; une fraction réduite en possède un exactement lorsque son dénominateur est une puissance de deux.
La fraction 5/8 a pour écriture finie 0,101₂, tandis que 1/10 nécessite une séquence périodique de chiffres binaires.

E

Encodage
Un encodage de caractères précise comment les valeurs de caractères valides deviennent une séquence d’unités de code ou d’octets pour le stockage et la transmission.
UTF-8 encode « é » sous la forme C3 A9, tandis qu’une notation de point de code identifie le caractère sans donner cette séquence d’octets.
Entier non signé
Un entier non signé représente un entier positif ou nul en utilisant des poids binaires positifs à chaque position d’une taille fixe.
L’octet 11111111 représente 255 lorsque son type de données indique un entier non signé sur huit bits.
Erreur d’arrondi
Une erreur d’arrondi est la différence entre une valeur exacte attendue et la valeur représentable choisie pour la stocker ou effectuer un calcul.
Le développement binaire périodique de 0,1 est arrondi lorsqu’il est stocké avec une simple ou une double précision finie.
Extension de signe
L’extension de signe augmente le nombre de bits d’un entier signé en copiant son bit de signe dans chaque nouvelle position à gauche, ce qui préserve sa valeur.
La valeur signée 1010 sur quatre bits devient 11111010 après extension, ce qui préserve −6 en complément à deux sur huit bits.

É

Échantillon
Un échantillon audio est une mesure de l’amplitude d’un signal à un instant donné, stockée sous forme d’un nombre selon la profondeur de quantification de l’enregistrement.
Un instant d’échantillonnage stéréo produit une mesure pour chacun des deux canaux, ce qui augmente les données stockées.

F

Fréquence d’échantillonnage
La fréquence d’échantillonnage est le nombre de mesures par seconde dans chaque canal audio, mesuré en hertz ; elle détermine leur espacement dans le temps.
À 48 kHz, l’enregistreur prend 48 000 mesures chaque seconde pour chaque canal de l’enregistrement.

H

Hexadécimal
L’hexadécimal est le système en base 16 qui utilise les chiffres de 0 à 9 et les lettres de A à F, chaque chiffre correspondant à quatre bits binaires.
L’octet 11001010 s’écrit plus brièvement 0xCA, tout en conservant un chiffre distinct pour chaque demi-octet.

I

IEEE 754
IEEE 754 est la norme qui définit des formats à virgule flottante largement utilisés et leur comportement, notamment les valeurs normales, l’arrondi et les valeurs spéciales.
Binary32 et binary64 suivent IEEE 754 : leurs champs peuvent donc être décodés à l’aide d’un ensemble commun de règles.
Image
Une image vidéo est un élément d’une séquence chronométrée ; la fréquence d’images indique combien de ces images sont affichées par seconde.
À 25 images par seconde, une seconde de vidéo brute contient vingt-cinq images complètes avant de compter l’audio.
Image matricielle
Une image matricielle représente une image sous forme d’une grille rectangulaire de valeurs de pixels, avec une largeur, une hauteur et une profondeur de couleur.
Une photographie numérique est stockée sous forme d’image matricielle, car chaque partie de son image détaillée nécessite une valeur de pixel.
Image vectorielle
Une image vectorielle décrit des formes par des instructions géométriques, ce qui permet de les redessiner à différentes tailles sans agrandir une grille de pixels stockée.
Un logo SVG peut décrire le centre et le rayon d’un cercle, puis redessiner ce cercle pour un affichage plus grand.

M

Métadonnées d’image
Les métadonnées d’image décrivent une image ou son stockage, notamment ses dimensions et sa profondeur, et peuvent aussi comprendre les caractéristiques de l’appareil photo, la date ou le lieu.
Un fichier photographique peut contenir des informations sur l’appareil photo, même si ces octets ne font pas partie de la grille visible de pixels.
MIDI
Le MIDI stocke ou transmet des instructions d’interprétation musicale, comme les notes et leur durée, au lieu de la forme d’onde sonore d’un enregistrement.
Une mélodie MIDI peut être jouée avec différents sons d’instruments, mais elle ne préserve pas la voix enregistrée d’une personne qui chante.
Mojibake
Le mojibake est un texte illisible produit lorsqu’un lecteur décode des octets stockés avec un encodage différent de celui utilisé pour les écrire.
« café » en UTF-8 peut apparaître sous la forme « café » lorsque ses octets sont décodés en Windows-1252.

N

NaN
NaN, qui signifie « pas un nombre », est une catégorie spéciale de valeurs à virgule flottante dont le champ d’exposant est composé uniquement de uns et la fraction est non nulle.
Une opération numérique non valide comme zéro divisé par zéro peut produire NaN au lieu d’un nombre ordinaire.
Normalisation
La normalisation Unicode convertit des séquences de caractères équivalentes sous une forme commune afin de pouvoir comparer des chaînes dont les séquences de points de code diffèrent.
Une lettre accentuée précomposée et sa séquence composée d’une lettre de base et d’un accent peuvent être normalisées avant la comparaison de chaînes.
Numération de position
La numération de position donne à chaque chiffre une valeur déterminée à la fois par le chiffre lui-même et par sa place dans le nombre écrit.
Déplacer un 1 de la position des unités à celle des huit fait passer sa contribution de un à huit.

O

Octet
Un octet est un groupe de huit bits qui donne 256 configurations possibles et constitue généralement la plus petite unité de mémoire adressable.
L’octet 01000001 peut représenter le nombre 65 ou la lettre « A », selon son interprétation.

P

Page de codes
Une page de codes est une correspondance entre caractères et codes, souvent une ancienne table sur huit bits dont les valeurs d’octets supérieures ont des sens différents de ceux d’autres tables.
L’octet 0xE9 donne « é » en Latin-1 et « й » en Windows-1251 : le lecteur doit donc connaître la page de codes.
Palette
Une palette est une table stockée de couleurs sélectionnées, qui permet à chaque pixel de désigner une entrée de la table par un indice plus petit.
Une icône de seize couleurs peut utiliser des indices de pixels sur quatre bits, tout en conservant ses couleurs RVB dans la palette.
Perte de génération
La perte de génération est la perte supplémentaire d’informations qui peut s’accumuler lorsqu’un contenu multimédia est décodé et encodé plusieurs fois avec une méthode avec perte.
Enregistrer une photo modifiée par des réencodages JPEG répétés peut ajouter des pertes, même si chaque enregistrement semble similaire.
Pixel
Un pixel est une position dans la grille d’une image matricielle, qui contient une valeur de couleur ou un indice sélectionnant une couleur dans une palette.
Une image matricielle de 400 × 300 contient 120 000 pixels, quelle que soit la taille à laquelle elle est affichée.
Plage de valeurs
La plage de valeurs d’un format numérique décrit les grandeurs qu’il peut représenter ; en virgule flottante, les bits d’exposant fixent les grandes limites de son échelle.
Une valeur peut se trouver dans la plage finie de binary32 tout en étant située entre deux valeurs représentables voisines.
Point de code
Un point de code est une position numérotée dans l’espace de codes Unicode, écrite sous la forme U+ suivie de chiffres hexadécimaux, comme U+00E9.
Le point de code de « é » reste U+00E9, que ses octets soient stockés en UTF-8, UTF-16 ou UTF-32.
Précision
La précision d’un format numérique décrit la quantité de détails significatifs qu’il conserve ; en virgule flottante, les bits de fraction déterminent l’espacement à une échelle donnée.
Binary64 conserve davantage de bits significatifs que binary32, ce qui réduit généralement l’erreur d’arrondi pour une même entrée.
Préfixe 0x
Le préfixe 0x indique que les chiffres qui suivent sont en notation hexadécimale ; c’est une marque de notation qui n’ajoute aucune position numérique.
Dans 0x3A, les chiffres 3 et A contribuent trois fois seize et dix fois un ; le préfixe indique la base.
Préfixe binaire CEI
Un préfixe binaire CEI multiplie une unité de données par une puissance de 1 024 et utilise des noms comme kibi, mébi et gibi.
Un MiB contient 1 048 576 octets : un fichier d’un million d’octets occupe donc légèrement moins d’un MiB.
Préfixe décimal SI
Un préfixe décimal SI multiplie une unité de stockage par une puissance de dix, comme mille pour kilo ou un million pour méga.
Des données de 2 MB contiennent 2 000 000 d’octets, même si un système indique aussi leur taille en MiB.
Profondeur de couleur
La profondeur de couleur est le nombre de bits utilisés pour représenter le code couleur d’un pixel ; elle détermine le nombre de codes couleur distincts possibles.
Un indice de palette sur quatre bits permet de sélectionner seize couleurs, tandis que le RVB sur 24 bits offre bien davantage de combinaisons.
Profondeur de quantification
La profondeur de quantification audio est le nombre de bits utilisés par échantillon ; elle détermine le nombre et la finesse des niveaux d’amplitude disponibles.
Seize bits permettent 65 536 niveaux d’échantillon, tandis que huit bits n’en permettent que 256 et donnent une quantification moins fine.

Q

Quantification
La quantification arrondit l’amplitude mesurée d’un échantillon à l’un des niveaux stockés disponibles, ce qui introduit une erreur pouvant apparaître comme du bruit.
Augmenter la profondeur de quantification rapproche les niveaux de quantification sans changer les moments où les échantillons sont pris.

R

Rapport de compression
Le rapport de compression est la taille des données d’origine divisée par leur taille compressée, les deux quantités étant exprimées dans la même unité.
Réduire un fichier de 15 MB à 5 MB donne un rapport de compression de 3:1, et non une économie de 3 MB.
Rastérisation
La rastérisation transforme des instructions décrivant des formes en une grille de pixels à une résolution choisie afin qu’un écran puisse afficher l’image obtenue.
Le contour vectoriel d’une police est rastérisé en pixels d’écran lorsqu’un document affiche ses lettres.
Rebouclage
Le rebouclage est un comportement qui ne conserve qu’un nombre fixe de bits de poids faible, faisant ainsi passer les valeurs entières stockées par des cycles de configurations disponibles.
Avec un rebouclage non signé sur huit bits, augmenter 254 de trois stocke 1 après un cycle complet de 256.
Redondance
La redondance est une information répétée ou prévisible qui peut permettre de décrire des données plus brièvement sans perdre leur contenu d’origine.
Une longue ligne d’une seule couleur présente une redondance que le codage par plages peut remplacer par un nombre court.
Repliement spectral
Le repliement spectral se produit lorsque des fréquences échantillonnées supérieures à la moitié de la fréquence d’échantillonnage apparaissent comme de fausses fréquences plus basses dans l’enregistrement numérique.
Un filtre anti-repliement élimine les hautes fréquences d’entrée avant l’échantillonnage afin qu’elles ne créent pas de fausses tonalités.
Représentation en signe et valeur absolue
La représentation en signe et valeur absolue stocke un bit de signe séparément des bits de valeur absolue, ce qui donne des configurations distinctes pour le zéro positif et le zéro négatif.
En représentation en signe et valeur absolue sur huit bits, 10000110 signifie −6 ; les sept bits de poids faible donnent directement la valeur absolue.
Résolution
La résolution d’une représentation est le plus petit pas discernable à l’échelle choisie ; en virgule fixe, elle est déterminée par le nombre de bits fractionnaires.
Cinq bits fractionnaires binaires donnent un pas de 1/32 : une valeur située à mi-chemin entre deux pas doit donc être arrondie.
RVB
Le RVB représente une couleur par des intensités de lumière rouge, verte et bleue, généralement sur huit bits pour chaque canal d’un pixel.
Le rouge et le vert à pleine intensité, sans bleu, donnent la lumière jaune du RVB (255 ; 255 ; 0).

S

Signal analogique
Un signal analogique varie de façon continue, comme la tension d’un microphone qui suit les changements de pression de l’air produits par le son.
Un convertisseur audio mesure le signal analogique d’un microphone avant d’en stocker des échantillons numériques.
Significande
Un significande est la suite de chiffres significatifs multipliée par une puissance de la base ; un significande binaire normal commence par 1.
Dans 1,011₂ × 2⁴, le significande est 1,011₂, tandis que l’exposant détermine son échelle globale.

T

Taille fixe
Une taille fixe est un nombre déterminé de bits réservé à chaque valeur, ce qui limite le nombre de configurations distinctes pouvant être stockées.
Un compteur sur huit bits ne peut pas acquérir un neuvième bit stocké lorsque le résultat atteint 256 ; sa règle de dépassement de capacité compte donc.
Théorème d’échantillonnage
Le théorème d’échantillonnage impose une fréquence supérieure au double de la fréquence la plus élevée conservée pour échantillonner fidèlement un signal à bande limitée.
Un signal conservé jusqu’à 18 kHz nécessite une fréquence supérieure à 36 kHz, avec un filtrage pour éliminer les fréquences plus élevées.
Type de données
Un type de données précise le genre de valeur qu’un programme traite et contribue à déterminer comment ses configurations de bits stockées sont interprétées.
Un octet interprété comme un entier signé peut avoir une valeur différente du même octet interprété comme non signé.

U

Unicode
Unicode est une norme commune de caractères qui attribue des points de code aux différents systèmes d’écriture et définit des encodages pour stocker les valeurs de caractères valides.
Les caractères « A », « Ж » et « 中 » ont des points de code Unicode distincts dans un même espace de codes.
UTF-8
UTF-8 est un encodage Unicode de longueur variable qui utilise de un à quatre octets par point de code valide correspondant à un caractère et préserve les octets ASCII.
Le mot « café » utilise cinq octets UTF-8, car sa dernière lettre nécessite une séquence de deux octets.
UTF-16
UTF-16 encode les valeurs de caractères valides en une ou deux unités de code de 16 bits, en utilisant une paire de substitution pour les valeurs supérieures à U+FFFF.
L’emoji « 😀 » occupe deux unités de code UTF-16, D83D et DE00, bien qu’il ne corresponde qu’à un point de code.

V

Valeur dénormalisée
Une valeur dénormalisée est une très petite valeur à virgule flottante dont le champ d’exposant est composé uniquement de zéros, la fraction est non nulle et le 1 initial implicite est absent.
Les configurations dénormalisées remplissent une partie de l’écart entre la plus petite valeur normale positive et zéro.
Virgule binaire
La virgule binaire sépare les puissances entières de deux des puissances fractionnaires, dont la première vaut un demi immédiatement à sa droite.
Le premier 1 après la virgule dans 0,101₂ contribue un demi et le dernier 1 contribue un huitième.
Virgule fixe
La virgule fixe interprète les bits stockés selon un nombre convenu de positions fractionnaires, ce qui produit des valeurs régulièrement espacées à une échelle fixe.
Avec quatre bits fractionnaires, une valeur entière brute de 40 représente 40/16, soit 2,5, en virgule fixe non signée.
Virgule flottante
La virgule flottante stocke un signe, un significande et une échelle donnée par un exposant, ce qui permet de couvrir des grandeurs très différentes dans un même format.
Un même format peut représenter une petite longueur mesurée et une distance bien plus grande en modifiant son exposant.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer