Bits et nombres binaires
Huit interrupteurs peuvent afficher 256 combinaisons différentes, de quoi écrire chaque nombre de 0 à 255.
Avant de lire quoi que ce soit, essaie les interrupteurs ci-dessous. Appuie sur Tout éteindre. Allume maintenant seulement l'interrupteur le plus à droite et lis la ligne sous la rangée : 1. Éteins-le et allume celui de gauche : 2. Le suivant donne 4, puis le suivant 8. Continue vers la gauche. Arrivé au bout, tu as rencontré toutes les valeurs qu'un interrupteur d'un octet peut avoir, et le dernier vaut 128.
Fais glisser pour tourner. Fais défiler ou pince pour zoomer.
Chaque interrupteur vaut le double de celui de droite
Ce que tu viens de voir, c'est toute l'idée du binaire. En décimal, chaque rang vaut dix fois le rang à sa droite : unités, dizaines, centaines. En binaire, chaque rang vaut deux fois plus, donc les valeurs sont 1, 2, 4, 8, 16, 32, 64, 128. Pour lire une combinaison, additionne les valeurs des interrupteurs allumés. 00100101 a les interrupteurs 32, 4 et 1 allumés, ce qui fait 32 + 4 + 1 = 37. Allume exactement ces trois-là et la ligne de somme doit être d'accord. Une autre règle vient gratuitement. Seul l'interrupteur le plus à droite vaut un nombre impair. Un nombre est donc pair exactement quand son dernier bit vaut 0.
Pourquoi une puce utilise deux états plutôt que dix
Les interrupteurs à l'écran représentent de vrais interrupteurs. Une puce d'ordinateur contient des milliards de minuscules interrupteurs électroniques appelés transistors, et à chaque instant chacun laisse passer le courant ou le bloque. Les ingénieurs notent ces deux états 1 et 0. Chacun d'eux est un bit, abréviation de binary digit (chiffre binaire). La lettre que tu tapes et la chanson que tu écoutes finissent toutes deux en longues rangées de bits.
Pourquoi pas dix états, un par chiffre décimal ? La tension sur un fil dans une puce n'est jamais exacte. La chaleur, les fils voisins et de petites différences entre transistors la font monter et descendre un peu en permanence. Un circuit qui doit seulement distinguer haut et bas peut ignorer presque tout cela, car tout ce qui est au-dessus d'une ligne médiane compte comme 1 et tout ce qui est en dessous comme 0. Si l'on serre dix niveaux dans la même plage, ils sont si proches qu'un peu de bruit pourrait faire lire l'un pour son voisin. Deux états conviennent aussi à un interrupteur. Il est complètement ouvert ou complètement fermé, et n'a jamais à tenir une position délicate entre les deux.
Écrire 100 avec les interrupteurs
Dans l'autre sens, d'un nombre vers les bits, on procède comme pour payer avec la plus grosse pièce qui convient. Prends 100. 128 est trop grand. 64 convient, il reste 36. 32 convient, il reste 4. 16 et 8 sont tous deux trop grands pour 4. 4 convient, il reste 0. Les interrupteurs 64, 32 et 4 sont donc allumés : 1100100, ou 01100100 sur un octet complet. Choisis 100 comme cible dans la scène et vérifie. Certains préfèrent une seconde méthode. On divise par 2 encore et encore, on note chaque reste, puis on lit les restes de bas en haut. Les deux méthodes donnent les mêmes bits.
Un interrupteur de plus double les combinaisons
Combien de nombres différents huit interrupteurs peuvent-ils former ? Chaque bit supplémentaire double le compte. Un bit donne 2 combinaisons. Deux bits en donnent 4 : 00, 01, 10 et 11. Trois en donnent 8, et n bits donnent 2 puissance n. Un octet, huit bits, donne 256 combinaisons : un octet compte donc de 0 à 255, et c'est aussi pourquoi chacun des quatre nombres d'une adresse IPv4 s'arrête à 255. Il faut donner un numéro propre à 1000 objets ? 9 bits n'en donnent que 512. Il en faut 10, qui en donnent 1024.
Appuie plusieurs fois sur +1 en partant de 0 et regarde les interrupteurs. On dirait le compteur kilométrique d'une voiture avec seulement deux chiffres sur chaque roue. 0, puis 1, puis le rang des 1 revient à zéro et fait une retenue sur le rang des 2 : 10. Puis 11. Puis les deux reviennent à zéro en même temps : 100. Avec tous les interrupteurs allumés, tu as 11111111, soit 255. La vraie réponse à 255 + 1 est 256, et elle demande un neuvième bit : 100000000. La scène ne garde que huit bits, donc +1 à partir de 255 affiche 0. C'est un dépassement de capacité. On le retrouve dans l'unité sur l'additionneur.
| Bit | Un chiffre binaire : 0 ou 1 |
| Octet | 8 bits, 256 combinaisons |
| Valeurs de position | 1, 2, 4, 8, 16, 32, 64, 128 |
| n bits | 2ⁿ combinaisons |
| 11111111 | 255 |
| Dépassement de capacité | Un résultat trop grand pour les bits qui le contiennent |
- « 10 veut dire dix. » Seulement en décimal. En binaire, 10, c'est un 2 et aucun 1, donc cela veut dire deux. Quand un nombre peut se lire des deux façons, écris un petit 2 après lui, comme dans 10₂, pour indiquer le système.
- « Plus il y a de 1, plus le nombre est grand. » La position compte plus que le nombre de 1. 01111111 a sept 1 et vaut 127. 10000000 n'a qu'un seul 1 et vaut 128. L'interrupteur le plus à gauche pèse à lui seul plus que les sept interrupteurs à sa droite, car 128 = 127 + 1.
- « Un octet peut contenir des nombres jusqu'à 256. » Un octet a 256 combinaisons, mais l'une d'elles, 00000000, sert pour zéro. Le plus grand nombre est donc 255. Quatre bits se comportent de la même façon : 16 combinaisons, le plus grand nombre est 15.
- Combien vaut 1011 en décimal ?
- Écris 37 en binaire (sans zéros en tête).
- Combien vaut 1100100 en décimal ?
- Combien de combinaisons différentes 8 bits peuvent-ils afficher ?
- Quel est le plus grand nombre qu'un octet peut contenir ?
- Combien de combinaisons 4 bits donnent-ils ?
- Combien de bits faut-il pour donner des numéros différents à 1000 objets ?
- Qu'est-ce qui vient après 0111 quand on compte en binaire ? Utilise quatre chiffres.
- Lequel de ces nombres est impair ?
- 10011
- 10010
- 11110
- 100
- Combien de bits faut-il pour 255 + 1 = 256 ?
- Un bit vaut 0 ou 1 ; un octet, c'est 8 bits.
- Les valeurs de position binaires doublent : 1, 2, 4, 8, 16, 32, 64, 128.
- n bits donnent 2ⁿ combinaisons ; un octet contient de 0 à 255.
- Ajouter 1 à une suite de 1 fait tout revenir à zéro et demande un bit de plus.
Sources de ce cours (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
Consulté le: 2026-10-17