Bits, octets, construction avec binaire

Si vous travaillez avec des ordinateurs (ou même si ce n’est pas le cas!), il y a de fortes chances que vous ayez entendu des gens parler d’ordinateurs comme de “quelques uns et des zéros”. C’était l’une des rares choses que je savais sur les ordinateurs avant de me lancer dans le logiciel: il n’y a que des uns et des zéros . Ce n’est qu’après avoir appris à coder et commencé à programmer professionnellement que j’ai réalisé ce que cela signifiait vraiment. Oui, les ordinateurs fonctionnent avec des uns et des zéros. C’est certainement un peu plus compliqué que cela, mais ce n’est pas si compliqué que nous ne pouvons pas le comprendre!

Commençons par donner un nom à notre problème. Ces uns et ces zéros qui composent les ordinateurs? Ceux-ci sont basés sur un type de système numérique appelé binaire . Le système de nombres binaires repose sur une idée simple qu’au lieu de compter avec 10 chiffres – comme nous avons appris à faire à la maternelle – vous pouvez compter avec seulement deux chiffres. Le système de nombres binaires qui est utilisé dans les ordinateurs aujourd’hui a été créé par Gottfried Wilhelm Leibniz en 1679, mais cette façon de compter a une histoire beaucoup plus longue qui remonte aux anciens Egyptiens.

D’accord, donc, si le binaire n’a que deux chiffres, comment comptez-vous au-delà de… deux?

Comptage binaire

Dans notre système de comptage moderne, nous avons dix chiffres possibles par lieu. C’est pourquoi nous entendons parfois les gens se référer à notre système de comptage comme base 10 ; un autre nom est denary . Dans le système de numération binaire, nous avons deux chiffres possibles par lieu, nous pouvons donc nous y référer comme comptant en base 2 (qui parfois abrégé en bin pour binaire). Le nombre de chiffres possibles par lieu est la seule vraie différence dans la façon dont nous comptons en base 2 par rapport à la base 10.

Dans l’exemple de gauche, nous pouvons voir que nous commençons à compter de la même manière que nous le faisons en base 10. D’abord avec 0, puis avec 1. Mais quand nous arrivons au nombre 2, comment continuez-vous à compter? !

Pensons à ce que nous faisons en base 10. Quand nous arrivons au chiffre 9, que faisons-nous? Nous réinitialisons les unités pour recommencer avec le nombre 0, et incrémentons notre position des dizaines au nombre 1. Lorsque nous avons parcouru toutes les possibilités entre 10 et 19, nous remettons la place des unités à 0 et incrémentons la place des dizaines à le nombre 2. Nous faisons cela jusqu’à ce que nous ayons atteint les nombres entre 90 et 99, puis nous ajoutons un autre endroit: la place des centaines.

La même logique s’applique au comptage en binaire. Commencez par 0 et 1. Pour représenter le nombre 2, nous remettons la première place à 0 et ajoutons un autre chiffre à gauche: 10. Ensuite, nous incrémentons à nouveau la première place: 11. Et si nous continuons à faire cela, nous voyez que les 10 premiers nombres en binaire comme ceci:

0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111

(Pssst – il y a un modèle dans le nombre de permutations / combinaisons possibles par chiffre! Mais si vous ne le voyez pas encore, ne vous inquiétez pas. Cela devrait devenir un peu plus évident plus tard).

/ em>

Ecrire en binaire

Nous savons que les ordinateurs fonctionnent en binaire. Et pourtant, aucun de nous ne tape binaire sur le clavier! Cela nous amènerait à croire que, d’une manière ou d’une autre, ce que nous tapons dans nos machines est converti (compilé) en binaire. Cela se produit via plusieurs couches d’abstraction, et nous ne les aborderons pas toutes.

Bien qu’il ne soit pas important de connaître toutes les couches, je pense qu’il est utile de connaître un peu le fonctionnement de cette conversion. Nous allons garder les choses simples et nous concentrerons sur la conversion entre des nombres de base 10 (entiers) en binaire.

Vous vous souvenez à l’école primaire quand nous avons tous dû apprendre nos tables de multiplication? Et puis rappelez-vous au collège quand nous avons commencé à apprendre les exposants et réalisé à quel point ces tables de multiplication étaient utiles? Eh bien, préparez-vous à re-réaliser cela encore une fois! J’ai beaucoup pratiqué la conversion vers et depuis le binaire au cours de la semaine dernière et j’ai réalisé que la chose la plus importante que vous puissiez faire pour apprendre le binaire est de perfectionner vos pouvoirs de deux. (Mais juste au cas où vous auriez besoin d’un peu d’aide, j’ai inclus les pouvoirs de deux dans mes exemples ci-dessous.)

Conversion en binaire

Jetons un œil à quelques exemples. Tout d’abord, essayons de convertir le nombre 27 (en base 10) en binaire (en base 2).

Ce que nous voulons faire, c’est décomposer ce nombre en puissances de deux. On peut donc se demander: quelle puissance de 2 puis-je atteindre sans dépasser le nombre que je souhaite convertir?

Une fois que nous avons trouvé ce nombre, nous voulons le soustraire de notre montant total, puis répéter ce processus jusqu’à ce que nous nous retrouvions avec zéro. Une chose importante à retenir (que j’ai toujours l’air d’oublier): 2 élevé à la puissance 0 est toujours égal à un !

Cela peut avoir plus de sens de voir dans un exemple:

Une fois que nous avons décomposé notre nombre en puissances de 2, nous devons les mettre au bon endroit. En base 10, nous avons unités , dizaines , centaines , milliers , etc. En binaire, nos places proviennent – vous l’avez deviné – des puissances de deux. Nos places seront: un, deux, quatre, huit, seize; en d’autres termes, 2 à la puissance 0, 2 à la puissance 1, 2 à la puissance 2, et ainsi de suite.

Nous pouvons voir que nous avons une valeur de 16, une valeur de 8, une valeur de 2 et une valeur de 1. C’est exactement ainsi que nous savons à quels endroits ces nombres appartiennent! Nous voudrons mettre un 1 à chacun de ces endroits, et tout endroit / puissance de deux qui n’a pas de valeur dans notre ventilation numérique obtiendra un zéro. Puisque rien dans notre nombre 27 ne pouvait être décomposé en une puissance de 2 (c’est-à-dire que nous n’avions pas de 4 & # x27; s dans notre répartition des nombres), nous mettrons un zéro à cet endroit.

Et c’est tout! Le nombre 27 peut être converti de la base 10 en binaire sous la forme: 11011.

D’accord, encore un exemple. Allons en grand cette fois – le nombre 114.

La puissance de deux la plus élevée que nous pouvons atteindre sans dépasser le nombre 114 est 64, ou 2 à la puissance 6 (2 à la puissance 7 est 128, et c’est trop grand car il dépasse notre nombre!). Nous savons immédiatement que nous allons avoir un 1 à la place de «64», ou «2 à la puissance de 6».

Continuons à diviser le nombre 114 en puissances de deux:

D’accord, nous nous sommes donc retrouvés avec un 64, un 32, un 16 et un 2. Une fois que nous avons mis un 1 dans les espaces appropriés, nous nous retrouvons avec ce numéro:

<1110010

Et c’est tout! L’équivalent binaire de 114!

Si nous faisons suffisamment de conversions binaires, nous commencerons à remarquer que les nombres pairs en base dix se termineront toujours par 0 lorsqu’ils seront convertis en binaire. Inversement, les nombres impairs en base dix se termineront toujours par 1 lorsqu’ils sont écrits en binaire. Vous vous souvenez de cette règle que j’ai mentionnée plus tôt? 2 élevé à la puissance 0 est toujours égal à un !

C’est cette règle qui entre en jeu. Les nombres pairs sont divisibles par deux, ce qui signifie que vous n’aurez jamais un reste supplémentaire de 1 lorsque vous divisez votre nombre en puissances de deux.

Conversion hors binaire

L’interprétation des nombres à partir du binaire est beaucoup plus facile une fois que vous savez comment y écrire. Lorsque nous convertissions de la base 10 en binaire, nous décomposions les choses en puissances de deux, non? Mais ce que nous faisions vraiment était de diviser par des puissances de deux .

Sur la base de cette logique, nous ferons exactement le contraire si nous voulons convertir le binaire en base 10. Autrement dit: nous allons multiplier par des puissances de deux .

Voyons à quoi cela pourrait ressembler; nous allons convertir 101011 en base 10:

Tout d’abord, nous allons regarder ce qu’il y a dans chaque endroit et nous nous souvenons à quelle puissance de 2 cet endroit est associé. Nous pouvons commencer de gauche à droite: nous voyons que nous avons un 1 à la place des 32 (2 à la puissance 5), ce qui signifie que nous savons que la version de base 10 de ce nombre peut être décomposée (lire: divisé) en 32.

Nous allons l’écrire sur le côté et continuer. Il y a un zéro dans le 2 à la puissance de la position 4 (que nous pourrions également appeler la place 16 & # x27; s), donc au lieu de multiplier par 1, nous allons le multiplier par 0.

Une bonne règle de base lors de la conversion en binaire est la suivante: s’il y en a un à la place, multipliez la puissance de deux pour cette place par 1 (et continuez à faire cela jusqu’à ce que vous ayez terminé les lieux!).

Finalement, nous descendons au dernier chiffre et finissons par ces nombres: 32, 8, 2 et 1 (ce qui équivaut à 2 à la puissance 5, 2 à la puissance 3, 2 à la puissance de 1, 2 à la puissance 0). Tous ces chiffres combinés nous donnent la conversion de base 10 de 101011: le nombre 43 .

Un autre exemple rapide – cette fois, essayons un nombre plus petit. Voici comment nous convertirons 10100 en base 10:

Celui-ci est un peu plus facile à comprendre, espérons-le! Nous pourrions même être capables de le faire dans notre tête (en fonction de notre connaissance de nos pouvoirs de 2). Nous savons que nous allons vouloir additionner la valeur de 2 à la puissance de 4 et de 2 à la puissance de 2.

Eh bien, maintenant, nous pouvons probablement le faire assez rapidement: 2 à la puissance 4 est 16, tandis que 2 à la puissance 2 est 4. Qu’est-ce que 16 + 4? 20.

Et voilà! 10100 équivaut à 20 en base 10. Facile!

Comment les ordinateurs lisent-ils le binaire?

D’accord, assez avec les maths. Qu’est-ce que cela a à voir avec les ordinateurs?

Au cœur de celui-ci, les ordinateurs sont constitués de commutateurs. Nous savons déjà que les ordinateurs interprètent le binaire. Mais ce que nous ne réalisons peut-être pas, c’est que les commutateurs et les circuits qui sont les blocs de construction des ordinateurs d’aujourd’hui sont en fait des représentations de binaire.

Un ordinateur possède des milliards de (très petits) circuits numériques, qui sont incroyablement simples. Ils sont constitués de commutateurs. Et un commutateur ne peut avoir que deux états: activé ou désactivé . Une autre façon d’y penser est vrai ou faux . Et nous pouvons représenter ce binaire on / off d’une autre manière: 1 et 0.

Le binaire est le système de numérotation que les ordinateurs utilisent pour représenter l’activation et la désactivation. Activé est 1 et désactivé est 0 .

Ce qui est encore plus cool, c’est que tout ce qui concerne les ordinateurs (et l’informatique, en plus!) est, au niveau le plus rudimentaire, basé sur ce paradigme marche / arrêt. De petites rafales d’électricité passent ou ne passent pas selon que quelque chose est allumé ou éteint.

Alors, comment un ordinateur interprète-t-il et décompose-t-il des choses complexes (comme ce billet de blog, par exemple) en juste des uns et des zéros? Il utilise différentes unités de mesure, qui peuvent toutes être converties en binaire.

Un seul chiffre en binaire est appelé bi nary digi t . Mais, vous le connaissez peut-être comme un peu . Puisque nous savons que le binaire est la base 2, et qu’un chiffre ne peut être qu’un 0 ou un 1, nous pouvons également en déduire qu’un bit ne peut être compris que d’un 0 ou d’un 1 .

Cela signifie que notre ordinateur doit tout faire en construisant des nombres binaires, ce qui signifie n’utiliser que 0 et 1 et les enchaîner. Ce qui semble un peu fou! Mais il peut construire des bits sur d’autres bits. Et c’est exactement ce qu’il fait. Il enchaîne 8 bits (8 chiffres) dans un octet . Nous avons peut-être déjà entendu le terme “octet ”Jeté autour, ou peut-être vu sur Stack Overflow. Un octet est si courant dans la façon dont les ordinateurs interprètent le binaire qu’il est considéré comme une unité de mémoire informatique .

Je pense que les octets sont particulièrement intéressants car un seul octet peut représenter 256 combinaisons différentes. ( Rappelez-vous les puissances de 2? 2 à la puissance de 8 est 256. ) Et si vous avez deux octets? Deux octets signifie 16 bits (chiffres binaires), ce qui signifie que vous pouvez représenter 65 536 combinaisons différentes (2 à la puissance 16)! C’est beaucoup de permutations différentes que vous pouvez représenter avec seulement 2 octets! Si vous pensez à un seul circuit (souvent appelé transistors ) gérant un interrupteur marche / arrêt par chiffre, seuls 16 transistors peuvent traiter et interpréter une tonne d’informations!

Les bits, les éléments constitutifs des octets, sont incroyablement fondamentaux et méritent d’être compris. Ils sont importants car différents ordinateurs peuvent traiter un nombre différent de bits à la fois. Une machine 8 bits, par exemple, se décompose et traite 8 bits à la fois. Une machine 16 bits se décomposerait et traiterait 16 bits à la fois. Le nombre de bits traités à la fois est connu sous le nom de mot informatique , nous pouvons donc considérer les bits comme les “lettres” qui composent un mot informatique. La plupart des ordinateurs ont maintenant une longueur de mot de 32 ou 64 bits. Et maintenant vous savez ce que cela signifie: que votre machine circule et traite 32 ou 64 bits à la fois. En d’autres termes, votre ordinateur traite les chaînes binaires de 32 ou 64 chiffres!

Ces unités de mémoire informatique sont ce à quoi les gens se réfèrent généralement lorsqu’ils disent “tout n’est que des uns et des zéros”. Parce que, vraiment, ça l’est.

Prenons un seul caractère d’un mot. Ce caractère nécessite 8 bits (ou 1 octet) pour le représenter. Alors, qu’en est-il quelque chose de plus? Qu’en est-il d’une page de texte d’environ 1 000 mots? Cela nécessiterait beaucoup plus d’octets!

J’ai peut-être regardé trop de zéros et de zéros, mais il semble qu’une fois que vous commencez à penser à l’échelle des bits et à la façon dont ils sont liés, construits et utilisés … eh bien, tout commence à ressembler à du binaire !

La puissance de deux

Le binaire est quelque chose auquel peu de programmeurs pensent ces jours-ci. Au fond, nous savons que c’est important et qu’il vaut la peine d’en savoir plus, mais cela peut sembler tellement accablant et inutile d’y penser.

Mais si vous repensez à l’époque où les ordinateurs occupaient des pièces entières (imaginez la taille des circuits et des transistors à l’époque!) et à quel point ils ont progressé et à quel point ils ont changé depuis, c’est plutôt mâchoire -dropping.

Au cœur même de cela, il y a le binaire – un langage que tout ordinateur parle et comprend. Donc, si vous êtes intéressé ou travaillez avec des ordinateurs, les bases du binaire méritent d’être connues un peu. Après tout, même s’il ne s’agit que de deux chiffres, c’est finalement ce dans quoi le monde qui nous entoure est écrit.

Toutes nos excuses si vous commencez à rêver dans les 0 et les 1 maintenant!

Ressources

Si vous avez trouvé ce message intéressant, consultez ces ressources ci-dessous. J’ai trouvé cela très utile pour apprendre le binaire, alors peut-être que vous le ferez aussi! Bon apprentissage.