À l'intérieur d'un processeur, il y a des milliards de petits interrupteurs. Chacun ne peut être que allumé ou éteint. C'est tout ce qu'un ordinateur possède physiquement — pas de trois, pas de sept, pas…
Narration en anglais · sous-titres en anglais et en 中文 au choix
1.1
Pourquoi les ordinateurs utilisent le binaire
Les ordinateurs numériques représentent les données à l'aide de deux états logiques, écrits comme 1 et 0. Un système qui n'utilise que deux chiffres est appelé binaire (base 2).
Les ordinateurs représentent toutes les données — nombres, texte, son et images — sous forme de chaînes binaires de 0s et 1s
Tout type de données — nombres, texte, son et images — doit être converti en binaire avant qu'un ordinateur puisse l'utiliser. L'ordinateur traite ce binaire à l'aide de portes logiques et le stocke dans des registres (petites mémoires rapides situées à l'intérieur du processeur).
Un microprocesseur contient des millions de transistors minuscules, chacun étant un interrupteur qui est allumé (1) ou éteint (0) — la base physique du binaire
1 Comprendre comment et pourquoi les ordinateurs utilisent binaire pour représenter toutes les formes de données
• Toute forme de données doit être convertie en binaire pour être traitée par un ordinateur • Les données sont traitées à l'aide de portes logiques et stockées dans des registres
2 (a) Comprendre les systèmes numériques décimal, binaire et hexadécimal (b) Convertir entre (i) décimaux positifs et binaires positifs (ii) décimaux positifs et hexadécimaux positifs (iii) hexadécimaux positifs et binaires positifs
• Le décimal est un système de base 10 • Le binaire est un système de base 2 • L'hexadécimal est un système de base 16 • Les valeurs utilisées seront uniquement des entiers • Les conversions dans les deux sens, par ex. décimal vers binaire ou binaire vers décimal • Longueur maximale du nombre binaire de 16 bits
3 Comprendre comment et pourquoi l'hexadécimal est utilisé comme une méthode bénéfique de représentation des données
• Les domaines dans l'informatique où l'hexadécimal est utilisé doivent être identifiés • L'hexadécimal est plus facile à comprendre pour les humains que le binaire, car c'est une représentation plus courte du binaire
4 (a) Additionner deux entiers binaires positifs sur 8 bits (b) Comprendre le concept de débordement et pourquoi il se produit dans l'addition binaire
• Une erreur de débordement se produira si la valeur est supérieure à 255 dans un registre de 8 bits • Un ordinateur ou un dispositif a une limite prédéfinie qu'il peut représenter ou stocker, par exemple 16 bits • Une erreur de débordement se produit lorsqu'une valeur hors de cette limite doit être retournée
5 Effectuer un décalage logique binaire sur un entier binaire positif de 8 bits et comprendre l'effet que cela a sur l'entier binaire positif
• Effectuer des décalages logiques vers la gauche • Effectuer des décalages logiques vers la droite • Effectuer plusieurs décalages • Les bits décalés depuis la fin du registre sont perdus et des zéros sont insérés à l'extrémité opposée du registre • L'entier binaire positif est multiplié ou divisé selon le décalage effectué • Le(s) bit(s) de poids fort ou le(s) bit(s) de poids faible sont perdus
6 Utilisez le système binaire en complément à deux pour représenter des entiers binaires 8 bits positifs et négatifs
• Convertir un entier binaire ou décimal positif en un entier 8 bits en complément à deux et vice versa • Convertir un entier binaire ou décimal négatif en un entier 8 bits en complément à deux et vice versa
Source : Programme Cambridge International
Comptage en binaire : 0 à 15
Un système de numération est une manière d'écrire les nombres en utilisant un ensemble fixe de chiffres. Il en faut trois.
Système
Base
Chiffres utilisés
Décimal
10
0–9
Binaire
2
0 et 1
Hexadécimal
16
0–9 puis A–F
décimal est le système de comptage normal (aussi appelé décimale).
Le binaire utilise uniquement 0 et 1.
hexadécimal (hex) utilise seize chiffres : 0–9, puis A, B, C, D, E, F valent 10, 11, 12, 13, 14, 15.
La base indique combien de chiffres différents un système utilise.
Valeur positionnelle
Chaque colonne d'un nombre possède une valeur de position. En binaire, les valeurs de position doublent de droite à gauche. Pour un nombre à 8 bits, elles sont :
128 64 32 16 8 4 2 1
Un tableau de valeur positionnelle sur 8 bits : les 1 sont placés sous les valeurs qui s'additionnent à 150
Un bit est un seul 0 ou 1. Huit bits forment un octet. Quatre bits (la moitié d'un octet) constituent un nibble.
Conversion entre systèmes de numération
Décimal → binaire. Écrire les valeurs positionnelles. Mettre un 1 sous chaque valeur nécessaire pour atteindre votre nombre ; mettre un 0 sous les autres.
Exemple : convertir le décimal 150 en binaire. $150 = 128 + 16 + 4 + 2$.
128 64 32 16 8 4 2 1
1 0 0 1 0 1 1 0
Donc $150$ = 10010110.
Binaire → décimal. Additionner les valeurs positionnelles où il y a un 1. 10010110$= 128 + 16 + 4 + 2 = 150$.
Hexadécimal → binaire. Convertir chaque chiffre hexadécimal en son propre groupe de 4 bits (un nibble).
Exemple : hex F08. $F = 1111$, $0 = 0000$, $8 = 1000$, donc F08 = 1111 0000 1000.
Chaque chiffre hexadécimal correspond à son propre nibble de 4 bits — F08 = 1111 0000 1000
Binaire → hexadécimal. Regrouper les bits en nibbles de 4, en commençant par la droite. Convertir chaque nibble en un chiffre hexadécimal.
Décimal → hexadécimal. La méthode facile consiste d'abord à convertir en binaire, puis en hex.
Ce tableau aide avec les lettres hex :
Décimal
Binaire
Hex
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Les questions Cambridge utilisent des nombres binaires allant jusqu'à 16 bits.
Exemple résolu. Convertir le décimal 100 en binaire sur 8 bits, puis en hexadécimal.
$100 = 64 + 32 + 4$, donc le binaire est 01100100. En divisant en nibbles, 01100100$= 6$ et $4$, donc l'hexadécimal est 64.
Exemple corrigé (hexadécimal → décimal). Convertissez le nombre hexadécimal 2C en décimal. Les valeurs de position en hexadécimal sont $16$ et $1$. 2 vaut $2 \times 16 = 32$ et C vaut $12$, donc 2C$= 32 + 12 = 44$. Vérification par le binaire : 0010 1100$= 32 + 8 + 4 = 44$.
Pourquoi utiliser l'hexadécimal
L'hex est plus court que le binaire et plus facile à lire et écrire pour les humains. Un chiffre hex remplace 4 chiffres binaires, réduisant ainsi les erreurs. La valeur ne change pas — l'hex est simplement une façon plus courte d'afficher le même binaire.
Les informaticiens utilisent l'hex pour :
Adresses MAC et adresses IPv6
codes couleur en HTML (par exemple #FF0000 est rouge)
adresses mémoire et codes d'erreur
afficher le contenu de la mémoire (un « vidage mémoire »)
Explorer
Binaire, décimal et hexadécimal
Saisissez un nombre et voyez-le en binaire, décimal et hexadécimal — et comment les valeurs de position le construisent.
Addition colonne par colonne ; les reports se propagent vers la gauche. 118 + 48 = 166
Débordement
Lorsqu'il est interprété comme un entier non signé, un registre de 8 bits contient des valeurs allant de 0 à 255. Si une addition donne un résultat supérieur à 255, la réponse nécessite un 9e bit. Le registre ne peut pas contenir ce bit supplémentaire, il est donc perdu. On appelle cela le débordement (une erreur de débordement). Cela se produit lorsque la valeur dépasse la limite que le registre peut stocker.
Exemple : 11001000 (200) $+$01001000 (72) $= 272$. En binaire, cela correspond à 1 00010000, ce qui nécessite 9 bits. Le 1 en position de poids fort ne tiendra pas dans 8 bits, donc la réponse stockée sera fausse.
L'addition de 200 et 72 nécessite 9 bits, mais un registre de 8 bits élimine le neuvième, donc la réponse est fausse
Un décalage binaire logique déplace tous les bits vers la gauche ou vers la droite d'un certain nombre de positions.
Les bits qui sortent du registre sont perdus.
Des zéros sont ajoutés à l'extrémité vide.
Pour un entier non signé, un décalage vers la gauche multiplie par 2 pour chaque position déplacée si aucun bit non nul n'est perdu. Un décalage logique vers la droite donne le résultat entier de la division par 2 pour chaque position ; les bits de droite (les bits de poids faible) sont perdus.
Exemple : décalage vers la gauche de 00110101 (53) de 2 positions.
Un décalage vers la gauche de 2 : chaque bit se déplace de 2 positions vers la gauche, les bits supérieurs sont perdus et des zéros remplissent la droite
Le résultat est 11010100 (212), ce qui correspond à $53 \times 4$. Les deux bits les plus à gauche ont été perdus et deux zéros sont entrés sur la droite. Si un 1 est expulsé par la sortie, cette information est définitivement perdue.
Exemple corrigé (décalage à droite). Décalez 10110100 (180) de 3 positions vers la droite. Donnez le résultat en binaire et en décimal, et indiquez l'effet du décalage.
Les trois bits les plus à droite (100) sont perdus et trois zéros entrent à gauche : 00010110$= 16 + 4 + 2 = 22$. Un décalage de 3 positions vers la droite divise par $2^3 = 8$ : $180 \div 8 = 22.5$, et le décalage ne conserve que la partie entière, $22$. La valeur $0.5$ était portée par le bit 1 perdu.
Exemple corrigé (un décalage à gauche qui échoue). Décalez 01100100 (100) de 2 positions vers la gauche. Le résultat est 10010000$= 144$, et non $400$ : un 1 a été expulsé à gauche et $400$ est de toute façon trop grand pour 8 bits. Un décalage à gauche ne multiplie correctement que si aucun bit 1 n'est perdu.
1.1
Complément à deux
Jusqu'à présent, les nombres étaient positifs. Le complément à deux permet à un registre à 8 bits de contenir également des nombres négatifs.
En complément à deux, le bit de gauche (le bit de poids fort, ou MSB) a une valeur de position négative :
-128 64 32 16 8 4 2 1
Si le MSB (bit de poids fort) est 0, le nombre est zéro ou positif.
Si le MSB est 1, le nombre est négatif.
Pour rendre un nombre positif négatif : écrivez le binaire positif, inversez chaque bit (0↔1), puis ajoutez 1.
Exemple : rendre $-40$ négatif.
$+40$ = 00101000
inverser les bits = 11010111
ajouter 1 = 11011000
Ainsi $-40$ = 11011000. Vérification en additionnant les valeurs de position : $-128 + 64 + 16 + 8 = -40$.
Le bit de poids fort vaut -128, donc 11011000 = -128 + 64 + 16 + 8 = -40
Pour lire un nombre en complément à deux négatif, il suffit d'additionner les valeurs de position (le MSB compte pour $-128$). La plage d'un nombre en complément à deux sur 8 bits va de $-128$ à $+127$.
Exemple corrigé. Convertissez le nombre en complément à deux 10011010 en décimal. Le bit de poids fort est 1, donc le nombre est négatif : $-128 + 16 + 8 + 2 = -102$. Vérifiez avec l'autre méthode : inversez les bits (01100101) et ajoutez 1 (01100110$= 102$), donc le nombre est $-102$.
1.2
Représentation du texte
Programme
Les candidats doivent être capables de :
Notes et orientations
1 Comprendre comment et pourquoi un ordinateur représente le texte et l'utilisation des ensembles de caractères, y compris le code américain standard pour l'échange d'informations (ASCII) et Unicode
• Le texte est converti en binaire pour être traité par un ordinateur • Unicode permet une plus grande gamme de caractères et de symboles qu'ASCII, y compris différentes langues et émojis • Unicode nécessite plus de bits par caractère que ASCII
2 Comprendre comment et pourquoi un ordinateur représente le son, y compris les effets du taux d'échantillonnage et de la résolution d'échantillonnage
• Une onde sonore est échantillonnée pour convertir le son en binaire, qui est ensuite traité par un ordinateur • Le taux d'échantillonnage est le nombre d'échantillons prélevés par seconde • La résolution d'échantillonnage est le nombre de bits par échantillon • La précision de l'enregistrement et la taille du fichier augmentent lorsque le taux et la résolution d'échantillonnage augmentent
3 Comprendre comment et pourquoi un ordinateur représente une image, y compris les effets de la résolution et de la profondeur de couleur
• Une image est une série de pixels convertis en binaire, qui sont ensuite traités par un ordinateur • La résolution est le nombre de pixels dans l'image • La profondeur de couleur est le nombre de bits utilisés pour représenter chaque couleur • La taille du fichier et la qualité de l'image augmentent lorsque la résolution et la profondeur de couleur augmentent
Source : Programme Cambridge International
Les ordinateurs stockent le texte en attribuant un numéro à chaque caractère, puis en stockant ce numéro en binaire. L'ensemble des caractères qu'un ordinateur peut utiliser, ainsi que leurs numéros, constituent un ensemble de caractères.
ASCII utilise des codes de caractères sur 7 bits, offrant $N = 2^b = 2^7 = 128$ codes différents. Il inclut les lettres anglaises, les chiffres et les symboles courants ; tous les 128 codes ne sont pas des lettres. Unicode représente une bien plus grande gamme de caractères, y compris différentes langues et des émoticônes.
Essayez — encodez un court message. Cet extrait d'ASCII donne A = 65, B = 66, C = 67 et espace = 32. Écrivez les quatre groupes de 7 bits pour CAB , y compris son dernier espace. Ensuite, décodez les groupes 1000010 1000001 1000011.
Réponse corrigée. Recherchez chaque caractère, puis convertissez son code en binaire :
Caractère
Code
Sept bits
C
67
1000011
A
65
1000001
B
66
1000010
espace
32
0100000
Ainsi, CAB est 1000011 1000001 1000010 0100000. Le second message se décode en BAC. Un espace a également un code ; il ne s'agit pas d'une absence de données stockées. L'expéditeur et le récepteur doivent utiliser la même correspondance de codes de caractères pour interpréter correctement le message.
ASCII propose 128 codes. Unicode offre une gamme bien plus vaste ; la ligne plus large illustre le modèle du programme.
Pourquoi une plus grande gamme est importante. ASCII ne peut pas directement représenter un nom chinois. Unicode inclut les caractères chinois ainsi que les caractères anglais et de nombreuses autres langues. Pour la comparaison du programme, expliquez qu'une plus grande gamme nécessite davantage de codes binaires distincts, exigeant donc plus de bits par caractère que le modèle ASCII sur 7 bits.
Essayez — comparez les modèles de stockage indiqués. Stockez les quatre caractères CAB en utilisant (A) 7 bits par caractère et (B) 16 bits par caractère. Supposez que les bits sont empilés sans rembourrage ni informations supplémentaires sur le fichier. Trouvez la taille des données textuelles dans chaque modèle. La valeur sur 16 bits est une hypothèse pour cet exemple et non une règle stipulant que tous les caractères Unicode prennent 16 bits.
Réponse corrigée. Avec le même nombre de caractères, multipliez par le nombre de bits par caractère indiqué :
$$S = n b = 4 \times 7\ \text{bits} = 28\ \text{bits}$$
$$S = n b = 4 \times 16\ \text{bits} = 64\ \text{bits}$$
Le modèle B utilise plus d'espace de stockage pour cet exemple car sa largeur de code déclarée est plus grande. Utilisez la largeur donnée dans une question d'examen. Dans les fichiers réels, l'encodage compte également : UTF-8 stocke les caractères ASCII dans les mêmes octets qu'un fichier ASCII, donc le texte Unicode n'occupe pas toujours plus d'octets. Vous n'avez pas besoin des règles détaillées de UTF-8 pour cette comparaison de programmes.
Explorer
Représentation du son
y = a sin(bt + c)
Le son est une onde ; l'échantillonnage enregistre sa hauteur de nombreuses fois par seconde.
Une onde sonore est lisse et change constamment. Pour la stocker, l'ordinateur mesure la hauteur de l'onde à des moments réguliers. Cela s'appelle l'échantillonnage, et chaque mesure est un échantillon.
L'échantillonnage enregistre la hauteur de l'onde (amplitude) à des moments réguliers
Le taux d'échantillonnage est le nombre d'échantillons prélevés chaque seconde (mesuré en Hz).
La résolution d'échantillonnage est le nombre de bits utilisés pour chaque échantillon. La hauteur de l'onde au point d'échantillonnage est son amplitude.
Un taux d'échantillonnage plus élevé et une résolution d'échantillonnage plus élevée offrent un enregistrement plus précis, mais un fichier plus volumineux.
Explorer
Représentation du son
y = a sin(bt + c)
Le son est une onde ; l'échantillonnage enregistre sa hauteur de nombreuses fois par seconde.
Une image informatique est constituée d'une grille de petits points appelés pixels.
Une image bitmap est une grille de pixels ; la résolution correspond au nombre de pixels qu'elle contient
La résolution est le nombre de pixels dans l'image (par exemple $1920 \times 1080$).
La profondeur de couleur est le nombre de bits utilisés pour stocker la couleur de chaque pixel.
Une résolution plus élevée et une profondeur de couleur plus grande offrent une image de meilleure qualité, mais un fichier plus volumineux.
La profondeur de couleur détermine le nombre de couleurs différentes que peut prendre chaque pixel : avec $n$ bits, il y a $2^n$ couleurs. Une profondeur de couleur de 1 bit donne 2 couleurs (noir et blanc), 8 bits donnent $2^8 = 256$ couleurs et 24 bits donnent plus de 16 millions de couleurs.
Exemple corrigé. Une image utilise 64 couleurs différentes. Quelle est la plus petite profondeur de couleur possible ? Trouvez le plus petit $n$ tel que $2^n \geqslant 64$ : $2^6 = 64$, soit 6 bits par pixel. Si elle utilisait 65 couleurs, il lui faudrait 7 bits, car 6 bits ne permettent de former que 64 configurations différentes.
1 Comprendre comment le stockage de données est mesuré
• Incluant : – bit – demi-octet (nibble) – octet – kibioctet (KiB) – mébioctet (MiB) – gibioctet (GiB) – tébioctet (TiB) – pébioctet (PiB) – exbioctet (EiB) • La quantité de la dénomination précédente présente dans la taille du stockage de données, par exemple : – 8 bits dans un octet – 1024 mébioctets dans un gibioctet
2 Calculer la taille d'un fichier image et d'un fichier sonore, en utilisant les informations fournies
• Les réponses doivent être données dans les unités spécifiées dans la question. Les calculs doivent utiliser la mesure de 1024 et non 1000 • Les informations fournies peuvent inclure : – résolution et profondeur de couleur de l'image – taux d'échantillonnage, résolution et durée de la piste audio
3 Comprendre le but et la nécessité de la compression de données
• La compression existe pour réduire la taille du fichier • Son impact, par exemple : – bande passante réduite requise – espace de stockage réduit requis – temps de transmission raccourci
4 Comprendre comment les fichiers sont compressés en utilisant des méthodes de compression avec perte et sans perte
• La compression avec perte réduit la taille du fichier en supprimant définitivement des données, par exemple en réduisant la résolution ou la profondeur de couleur, en réduisant le taux ou la résolution d'échantillonnage • La compression sans perte réduit la taille du fichier sans perte définitive de données, par exemple codage par longueur de course (RLE)
Source : Programme Cambridge International
Le stockage de données est mesuré en unités ci-dessous. Un demi-octet correspond à 4 bit et un octet à 8 bits ; au-delà du kibioctet, chaque unité est 1024 fois plus grande que la précédente (car $1024 = 2^{10}$ s'adapte au binaire).
Unité
Équivaut à
bit
un seul 0 ou 1
nibble
4 bits
byte
8 bits
kibibyte (KiB)
1024 octets
mebibyte (MiB)
1024 KiB
gibibyte (GiB)
1024 MiB
tebibyte (TiB)
1024 GiB
pebibyte (PiB)
1024 TiB
exbibyte (EiB)
1024 PiB
Plateaux de disque dur : le stockage est mesuré en octets — connaître la taille d'un fichier nécessite largeur × hauteur × profondeur de couleur pour les images
Pour passer des bits aux octets, on divise par 8 ; à chaque étape suivante, on divise par 1024
Taille de fichier audio (en bits) $=$ fréquence d'échantillonnage $\times$ résolution de l'échantillon $\times$ durée en secondes.
Ces formules comptabilisent les données non compressées sans en-têtes de fichier. La formule sonore s'applique à un seul canal ; multipliez par le nombre de canaux si une question spécifie plusieurs canaux.
Divisez toujours par 1024 (et non par 1000) pour convertir en KiB, MiB, etc. Donnez votre réponse dans l'unité demandée par la question.
Exemple résolu. Un son est enregistré pendant 30 secondes à un taux d'échantillonnage de 8,000 Hz avec une résolution d'échantillonnage de 16 bits. Calculez la taille du fichier en kibioctets (KiB).
La compression rend un fichier plus petit. Un fichier plus petit :
occupe moins d'espace de stockage,
nécessite moins de bande passante (la quantité de données qu'une connexion peut acheminer),
prend moins de temps à envoyer (un temps de transmission plus court).
Il existe deux types.
Compression sans perte
La compression sans perte réduit la taille du fichier avec une perte permanente nulle des données. Le fichier d'origine peut être reconstruit exactement.
Une méthode est le codage par plages (RLE). Elle remplace une suite de valeurs répétées par une seule occurrence de la valeur et le nombre de répétitions. Par exemple, WWWWWWWW (8 blancs) est stocké sous la forme « 8 W ». Cette méthode fonctionne bien lorsque les données comportent de nombreuses répétitions.
Le codage par longueur de série stocke chaque séquence une seule fois sous forme de compteur et de valeur
Exemple corrigé. Une ligne d'une image en noir et blanc est B B B B B W W B B B B B B B B B (16 pixels). Compressez-la avec le codage RLE et indiquez si cela économise de l'espace lorsque chaque nombre et chaque couleur sont stockés dans un octet.
Les plages sont 5 noirs, 2 blancs, 9 noirs ; les données RLE sont donc 5 B 2 W 9 B : 6 octets au lieu de 16 octets pour l'original (un octet par pixel). Cela économise de l'espace car la ligne contient de longues plages. Une ligne qui change de couleur à chaque pixel, B W B W …, deviendrait 1 B 1 W 1 B 1 W …, soit deux fois la taille de l'original : le codage RLE n'est utile que lorsque les données se répètent.
Compression avec perte
La compression avec perte réduit considérablement la taille du fichier en supprimant définitivement certaines données. Les données supprimées ne peuvent pas être récupérées. Par exemple :
réduction de la résolution ou de la profondeur de couleur d'une image,
réduction de la fréquence d'échantillonnage ou de la résolution de l'échantillon d'un son.
Utilisez le codage sans perte lorsque vous devez conserver tous les détails (textes et fichiers programmes). Utilisez le codage avec perte pour les photos, la musique et la vidéo, où une légère perte de qualité permet d'obtenir un fichier bien plus petit.
Explorer
Encodage par suites
Observez les symboles répétés être compressés en un compte — une compression sans perte simple.
Convertissez le décimal vers le binaire en soustrayant les valeurs de position (128, 64, 32 …) ; convertissez le binaire vers le décimal en additionnant les valeurs de position contenant un 1.
Pour convertir en hexadécimal, regroupez le binaire en demi-octets de 4 bits à partir de la droite ; chaque demi-octet correspond exactement à un chiffre hexadécimal.
Le débordement survient lorsqu'un résultat dépasse la plage de la représentation choisie. Les entiers sans signe sur 8 bits vont de 0 à 255 ; les compléments à deux sur 8 bits vont de −128 à −127.
Taille de fichier en bits : pour une image, largeur × hauteur × profondeur de couleur ; pour un son, fréquence d'échantillonnage × résolution × secondes. Divisez par 8 pour obtenir des octets, puis par 1024 pour chaque unité supérieure.
La compression sans perte conserve chaque bit (textes ; codage par longueur de run) ; la compression avec perte supprime définitivement des données (photos, musique) pour obtenir un fichier beaucoup plus petit.
Leçons interactives sur ce sujet
Traversez-le étape par étape, avec des exercices à vérification instantanée.