Number systems and conversions · Systèmes numériques et conversions
| English | Français |
|---|---|
| byte/baɪt/ | octet |
| denary/ˈdiːnəri/ | binaire |
| binary/ˈbaɪnəri/ | binaire |
| bit/bɪt/ | bit |
| nibble/ˈnɪbl/ | nibble |
| hexadecimal/ˌheksəˈdesɪml/ | hexadécimal |
| register width/ˈredʒɪstə wɪtθ/ | largeur de registre |
| kibi/ˈkɪbi/ | kibi |
The terabyte that was not a terabyte
- In 2005 a Californian bought a hard drive labelled 80 GB. His computer reported 74.5 GB. He sued, and the manufacturers eventually paid out: they had counted a gigabyte as a thousand million bytes, and the operating system had counted it as $2^{30}$.
- Neither was lying. There are two families of prefix, one built on powers of ten and one on powers of two, and they drift further apart the bigger the number gets.
- The whole of data representation rests on that idea: a computer stores nothing but 0s and 1s, and everything else is an agreement about how to read them.
- This lesson is the three number systems, the conversions between them, and the two prefix families.
Le téraoctet qui n'en était pas un
- En 2005, un Californien a acheté un disque dur étiqueté 80 Go. Son ordinateur a indiqué 74.5 Go. Il a intenté une action en justice et les fabricants ont finalement versé des dommages et intérêts : ils avaient défini un gigaoctet comme étant un milliard d'octets, tandis que le système d'exploitation l'avait comptabilisé comme $2^{30}$.
- Aucun ne mentait. Il existe deux familles de préfixes, l'une basée sur les puissances de dix et l'autre sur les puissances de deux, et elles s'écartent davantage lorsque le nombre augmente.
- Toute la représentation des données repose sur cette idée : un ordinateur ne stocke que des 0 et des 1, et tout le reste est un accord sur la façon de les lire.
- Cette leçon porte sur les trois systèmes numériques, leurs conversions et les deux familles de préfixes.
The three number systems
- Denary 十进制 (base 10) uses digits 0 to 9, with place values that are powers of ten. It is the everyday system.
- Binary 二进制 (base 2) uses 0 and 1, with place values that are powers of two. One digit is a bit 位; 4 bits are a nibble 半字节; 8 bits are a byte 字节.
- Hexadecimal 十六进制 (base 16) uses 0 to 9 then A to F for 10 to 15. One hex digit stands for exactly 4 bits, which is why it is the shorthand programmers use for binary.
| Denary | Binary | Hex |
|---|---|---|
| 10 | 1010 |
A |
| 15 | 1111 |
F |
| 16 | 0001 0000 |
10 |
| 255 | 1111 1111 |
FF |
Every system is place value; only the base changes
Les trois systèmes numériques
- Le décimal 十进制 (base 10) utilise les chiffres 0 à 9, avec des positions correspondant aux puissances de dix. C'est le système quotidien.
- Le binaire 二进制 (base 2) utilise 0 et 1, avec des positions correspondant aux puissances de deux. Un chiffre est un bit 位 ; 4 bits forment un nibble 半字节 ; 8 bits forment un octet 字节.
- L'hexadécimal 十六进制 (base 16) utilise 0 à 9 puis A à F pour 10 à 15. Un chiffre hexadécimal représente exactement 4 bits, c'est pourquoi c'est le raccourci utilisé par les programmeurs pour le binaire.
| Décimal | Binaire | Hex |
|---|---|---|
| 10 | 1010 |
A |
| 15 | 1111 |
F |
| 16 | 0001 0000 |
10 |
| 255 | 1111 1111 |
FF |

Chaque système est basé sur la position ; seule la base change
Number systems · Systèmes numériques
byte = Σ place values · octet = Σ valeurs de position
Each bit is worth a power of two — flip the bits and watch the decimal and hex update. · Chaque bit vaut une puissance de deux — changez les bits et watch décimal et hexa se mettre à jour.
How many bits does one hexadecimal digit represent? · Combien de bits représente un chiffre hexadécimal ?
One hex digit (0–F) covers 16 values = $2^4$, so it maps to exactly 4 bits (a nibble). · Un chiffre hex (0–F) couvre 16 valeurs = $2^4$, donc il correspond exactement à 4 bits (un demi-octet).
How many bits are in one byte? · Combien de bits contient un octet ?
A byte is 8 bits (and a nibble is 4 bits). · Un octet fait 8 bits (et un demi-octet fait 4 bits).
Denary to binary
- Method 1, place values: write the powers of two, $128, 64, 32, 16, 8, 4, 2, 1$, and subtract the largest that fits, repeating with what is left. Put a 1 under each one you used.
- Method 2, repeated division: divide by 2 over and over, writing down each remainder, then read the remainders bottom-up.
- $42 = 32 + 8 + 2$, so the bits under 32, 8 and 2 are 1 and the rest are 0:
0010 1010.
Subtract the biggest power of two that fits, and repeat
Décimal vers binaire
- Méthode 1, positions : écrire les puissances de deux, $128, 64, 32, 16, 8, 4, 2, 1$, et soustraire la plus grande possible, en répétant avec le reste. Mettre un 1 sous ceux utilisés.
- Méthode 2, division répétée : diviser par 2 encore et encore, notant chaque reste, puis lire les restes de bas en haut.
- $42 = 32 + 8 + 2$, donc les bits sous 32, 8 et 2 valent 1 et les autres 0 :
0010 1010.

Soustraire la plus grande puissance de deux possible, et répéter
Convert denary $13$ to binary (8-bit not required — just the significant bits). · Convertissez le nombre décimal $13$ en binaire (pas besoin de 8 bits — juste les bits significatifs).
$13 = 8 + 4 + 1$, so the columns 8, 4, 1 are set: 1101. · $13 = 8 + 4 + 1$, donc les colonnes 8, 4, 1 sont activées : 1101.
Convert binary 00101010 to denary. · Convertissez le binaire 00101010 en décimal.
$32 + 8 + 2 = 42$ (the 32, 8 and 2 columns are set). · $32 + 8 + 2 = 42$ (les colonnes 32, 8 et 2 sont activées).
Worked example: denary 200 to binary and hex
- $200 = 128 + 64 + 8$, so the 8-bit binary is
1100 1000. - Split into nibbles from the right:
1100is 12, which is C;1000is 8. So the hexadecimal isC8. - Check by place value the other way:
C8$= 12 \times 16 + 8 = 200$. ✓ Always show the working; the conversion itself carries the marks.
Exemple résolu : décimal 200 vers binaire et hexadécimal
- $200 = 128 + 64 + 8$, donc le binaire sur 8 bits est
1100 1000. - Divisez en nibbles depuis la droite :
1100est 12, soit C ;1000est 8. Donc l'hexadécimal estC8. - Vérifier par position dans l'autre sens :
C8$= 12 \times 16 + 8 = 200$. ✓ Toujours montrer le calcul ; la conversion elle-même rapporte les points.
Binary and hex, both directions
- Binary to hex: group the bits into nibbles from the right, padding the leftmost group with zeros, and convert each nibble.
0010 0010 1110becomes2 2 E, so22E. - Hex to binary: replace each hex digit with its own 4-bit pattern. No arithmetic needed.
- Hex to denary: multiply each digit by its place value, $16^2 = 256$, $16^1 = 16$, $16^0 = 1$.
22E$= 2 \times 256 + 2 \times 16 + 14 = 558$.
Binaire et hexadécimal, dans les deux sens
- Binaire vers hex : grouper les bits en nibbles depuis la droite, ajouter des zéros à gauche si nécessaire, et convertir chaque nibble.
0010 0010 1110devient2 2 E, donc22E. - Hex vers binaire : remplacer chaque chiffre hexadécimal par son motif de 4 bits. Aucune arithmétique requise.
- Hex vers décimal : multiplier chaque chiffre par sa valeur de position, $16^2 = 256$, $16^1 = 16$, $16^0 = 1$.
22E$= 2 \times 256 + 2 \times 16 + 14 = 558$.
Convert hexadecimal 2E to denary. · Convertissez l'hexadécimal 2E en décimal.
$2 \times 16 + 14 = 32 + 14 = 46$ (E is 14). · $2 \times 16 + 14 = 32 + 14 = 46$ (E vaut 14).
Convert the binary number 0010 0010 1110 to hexadecimal. · Convertissez le nombre binaire 0010 0010 1110 en hexadécimal.
Each nibble converts on its own, from the right: 0010 = 2, 0010 = 2, 1110 = 14 = E. · Chaque demi-octet se convertit séparément, de droite à gauche : 0010 = 2, 0010 = 2, 1110 = 14 = E.
How many bits does a value need?
- Exam questions fix the register width 寄存器宽度 (8, 12 or 16 bits), and you must pad with leading zeros to that width. $558$ in 12 bits is
0010 0010 1110, never10 0010 1110. - An unsigned integer from 0 to $2^n - 1$ needs $n$ bits: 200 needs 8 bits (8 bits reach 255), 1000 needs 10 bits (10 bits reach 1023), 16 needs 5 bits (4 bits stop at 15).
- One hexadecimal digit needs 4 bits, one BCD digit needs 4 bits, and one ASCII character needs 7 bits, or 8 for extended ASCII.
Combien de bits faut-il pour une valeur ?
- Les questions d'examen fixent la largeur du registre 寄存器宽度 (8, 12 ou 16 bits), et vous devez compléter avec des zéros en début de chaîne jusqu'à cette largeur. $558$ sur 12 bits est
0010 0010 1110, jamais10 0010 1110. - Un entier non signé de 0 à $2^n - 1$ nécessite $n$ bits : 200 nécessite 8 bits (8 bits atteignent 255), 1000 nécessite 10 bits (10 bits atteignent 1023), 16 nécessite 5 bits (4 bits s'arrêtent à 15).
- Un chiffre hexadécimal nécessite 4 bits, un chiffre BCD nécessite 4 bits, et un caractère ASCII nécessite 7 bits, ou 8 pour l'ASCII étendu.
Write denary 558 as a 12-bit binary number (four bits per group, spaces allowed). · Écrivez 558 décimal en binaire sur 12 bits (quatre bits par groupe, espaces autorisés).
558 = 512 + 32 + 8 + 4 + 2. Pad with leading zeros to the 12 bits the question asks for; an unpadded answer loses the mark. · 558 = 512 + 32 + 8 + 4 + 2. Remplissez avec des zéros en début pour atteindre les 12 bits demandés par la question ; une réponse non complétée perd les points.
Worked example: the minimum number of bits
- A system must store values from 0 to 1000. What is the smallest number of bits?
- Ask which power of two first exceeds 1000. $2^9 = 512$, too small; $2^{10} = 1024$, so ten bits hold 0 to 1023 and 1000 fits.
- The answer is 10 bits, and the reason is the range, not the digit count. A common trap: 16 needs five bits, because four bits stop at 15.
Exemple résolu : le nombre minimum de bits
- Un système doit stocker des valeurs de 0 à 1000. Quel est le nombre minimal de bits requis ?
- Demander quelle puissance de deux dépasse 1000 pour la première fois. $2^9 = 512$, trop petit ; $2^{10} = 1024$, donc dix bits couvrent 0 à 1023 et 1000 s'y range.
- La réponse est 10 bits, et la raison est l'étendue, pas le nombre de chiffres. Piège fréquent : 16 nécessite cinq bits, car quatre bits ne vont que jusqu'à 15.
What is the smallest number of bits that can store any unsigned value from 0 to 1000? · Quel est le nombre minimal de bits nécessaires pour stocker toute valeur sans signe de 0 à 1000 ?
Nine bits reach 511, ten bits reach 1023. The question is about the range the bits cover, not the number of digits. · Neuf bits atteignent 511, dix bits atteignent 1023. La question porte sur la plage couverte par les bits, pas sur le nombre de chiffres.
Binary prefixes and decimal prefixes
- Decimal prefixes are powers of ten and are used for drive capacities and network speeds: kilo $= 10^3$, mega $= 10^6$, giga $= 10^9$, tera $= 10^{12}$.
- Binary prefixes are powers of two and are used for memory sizes: kibi 二进制千 (Ki) $= 2^{10} = 1024$, mebi (Mi) $= 2^{20}$, gibi (Gi) $= 2^{30}$, tebi (Ti) $= 2^{40}$.
- So a "1 TB" drive holds $10^{12}$ bytes, but an operating system reporting in TiB divides by $2^{40}$ and shows about 0.91. Nothing has been lost; two different units were used.
Préfixes binaires et préfixes décimaux
- Les préfixes décimaux sont des puissances de dix et servent aux capacités de disques et vitesses réseaux : kilo $= 10^3$, mégao $= 10^6$, géga $= 10^9$, téra $= 10^{12}$.
- Les préfixes binaires sont des puissances de deux et servent aux tailles mémoire : kibi Ki (二进制千) $= 2^{10} = 1024$, mébi Mi (Mi) $= 2^{20}$, gibi Gi (Gi) $= 2^{30}$, tebi Ti (Ti) $= 2^{40}$.
- Ainsi, un disque de «1 To » contient $10^{12}$ octets, mais un système d'exploitation qui rapporte en TiB divise par $2^{40}$ et affiche environ 0.91. Rien n'a été perdu ; deux unités différentes ont été utilisées.
How many bytes are in 1 kibibyte (KiB)? · Combien d'octets font 1 kibibyte (KiB) ?
A kibibyte is $2^{10} = 1024$ bytes (a binary prefix, used for memory). · Un kibibyte fait $2^{10} = 1024$ octets (un préfixe binaire, utilisé pour la mémoire).
A drive sold as 1 TB holds fewer bytes than 1 TiB of memory. · Un disque vendu comme 1 To contient moins d'octets que 1 TiB de mémoire.
1 TB is 10^12 bytes; 1 TiB is 2^40, about 1.1 x 10^12. Decimal prefixes for drives, binary prefixes for memory. · 1 To est 10^12 octets ; 1 TiO est 2^40, environ 1.1 x 10^12. Préfixes décimaux pour les disques, préfixes binaires pour la mémoire.
Where hexadecimal is actually used
- Memory addresses and machine code, because one hex digit is exactly one nibble and a byte is exactly two hex digits, so a dump is readable at a glance.
- Colour codes in web pages:
#FF8800is one byte each of red, green and blue. MAC addresses and error codes likewise. - The reason is always the same: hex is a shorthand for binary that a person can read and write without mistakes, not a system the computer itself uses.
Où l'hexadécimal est vraiment utilisé
- Adresses mémoire et code machine, car un chiffre hexa correspond exactement à un demi-octet et un octet à deux chiffres hexa, rendant un dump lisible d'un coup d'œil.
- Codes couleurs dans les pages web :
#FF8800représente un octet chacun de rouge, vert et bleu. Adresses MAC et codes d'erreur également. - La raison est toujours la même : l'hexa est une abréviation du binaire qu'une personne peut lire et écrire sans erreur, pas un système que l'ordinateur utilise lui-même.
Where is hexadecimal used in practice? Select all · tout that apply. · Où l'hexadécimal est-il utilisé en pratique ? Sélectionnez toutes les réponses applicables.
Hex is a human-readable shorthand for binary: one digit per nibble, two per byte. The processor itself works in binary. · L'hexadécimal est un abrégé lisible par l'homme du binaire : un chiffre par demi-octet, deux par octet. Le processeur lui-même fonctionne en binaire.
Marks that slip away
- Pad to the width the question gives. An unpadded answer loses the mark even when the bits are right.
- Group nibbles from the right, not the left, or every hex digit shifts.
- 4 bits reach 15, 8 bits reach 255, 10 bits reach 1023. "How many bits" is a question about the range.
- A kibibyte is 1024 bytes and a kilobyte is 1000. Say which you used in any size calculation.
Pièges qui font perdre des points
- Remplissez à la largeur demandée. Une réponse sans remplissage perd le point même si les bits sont corrects.
- Regroupez les demi-octets de droite à gauche, pas de gauche à droite, sinon chaque chiffre hexa change de position.
- 4 bits atteignent 15, 8 bits atteignent 255, 10 bits atteignent 1023. « Combien de bits » est une question sur l'étendue.
- Un kioctet vaut 1024 octets et un kilooctet vaut 1000. Précisez lequel vous avez utilisé dans tout calcul de taille.
You've got it
- denary base 10, binary base 2 (bit, nibble = 4 bits, byte = 8 bits), hexadecimal base 16 where one digit is exactly one nibble
- denary to binary by subtracting powers of two or by repeated division reading remainders bottom-up; binary to hex by grouping nibbles from the right; hex to denary by place value
- pad to the register width; an unsigned value needs $n$ bits where $2^n$ first exceeds it
- decimal prefixes are powers of ten (drives, networks), binary prefixes powers of two (memory): kibi $= 1024$
Vous avez compris
- dénaire base 10, binaire base 2 (bit, demi-octet = 4 bits, octet = 8 bits), hexadécimal base 16 où un chiffre correspond exactement à un demi-octet
- dénaire vers binaire en soustrayant des puissances de deux ou par divisions successives en lisant les restes de bas en haut ; binaire vers hexa par regroupement de demi-octets de droite à gauche ; hexa vers dénaire par valeur de position
- remplir à la largeur du registre ; une valeur sans signe nécessite $n$ bits où $2^n$ la dépasse pour la première fois
- préfixes décimaux sont des puissances de dix (disques, réseaux), préfixes binaires des puissances de deux (mémoire) : kibi $= 1024$