Appuyez sur “Entrée” pour passer au contenu

Combien peut-on coder de valeurs différentes sur 7 bits ?

Le bit et l’octet☘

Le bit☘

Le mot bit est une abréviation : BInary digiT (qu’on peut traduire par : chiffre binaire).

Valeurs possibles☘

Un bit peut prendre deux valeurs : 0 ou 1.

L’octet est un regroupement de 8 bits.

Comme un bit peut prendre deux valeurs (0 ou 1), sur un octet on peut coder 28=256 valeurs distinctes.

Note

En anglais, octet se traduit par byte. Attention à ne pas confondre bit et byte.Vous pouvez par exemple trouver sur des sites commerciaux des indications de dimension pour un disquedur sous la forme « 2 TB »: il s’agit de deux tera bytes, c’est à dire 2 tera octets.

Exercice 1☘

Convenons d’appeler mot de longueur n une suite de n bits.

Exemple

Ainsi un octet est un mot de longueur 8.

  • Combien d’informations différentes peut-on coder avec des mots de longueur 16 ?
  • Combien d’informations différentes peut-on coder avec des mots de longueur 32 ?

16 bits

Chaque bit peut prendre deux valeurs distinctes. Avec des mots de n bits, on peut donc coder 2n valeurs distinctes.

Sur deux octets, on peut donc avoir 216 = 65 536 codes différents.

32 bits

Sur quatre octets, on peut avoir 232 = 4 294 967 296 codes différents.

Exercice 2☘

Pour le routage de l’information sur les réseaux suivant le protocole IP, les machines sont adressées en IP v4 ou en IP v6.

  • Une adresse IP v4 est codée sur 32 bits. Combien d’adresses peut-on définir en IP v4 ?
  • Une adresse IP v6 est codée sur 128 bits. Combien d’adresses peut-on définir en IP v6 ?
  • Admettons, avec une multiplication folle des objets connectés, qu’il soit nécessaire d’attribuer 1 milliard d’adresses IP par seconde.
    • Au bout de combien de temps aura-t-on épuisé les adresses IPv4 ?
    • Au bout de combien de temps aura-t-on épuisé les adresses IPv6 ?

Nombre d’adresses en IP v4

Avec 32 bits (4 octets), on peut coder 232 = 4 294 967 296 (un peu plus de 4 milliards) adresses distinctes.

Nombre d’adresses en IP v6

Avec 128 bits (16 octets), on peut coder 2128 adresses (soit plus de 3 * 1038 adresses).

Attention

En passant de 32 bits à 128 bits, on a multiplié par 4 la longueur de l’adresse. Mais on a ainsimultiplié par 2128-32 = 296 le nombre d’adresses possibles.

Temps d’épuisement IP v4

Avec un milliard d’adresses par seconde, on épuiserait le potentiel de l’ IPv4 en moins de 5 secondes.

En effet: frac{2^{32}}{10^9} approx 4{,}3 text{ secondes}.

Temps d’épuisement IP v6

Avec l’IPv6, il nous faut frac{2^{128}}{10^9} text{ secondes} = frac{2^{128}}{10^9 times 3600 times 24 times 365} text{ années}, soit plus de 10^{22} années.

A titre de comparaison, l’âge de l’univers est estimé à environ 15.10^9 années. Il faudrait donc 700 milliards de fois l’âge de l’univers pour épuiser le potentiel de l’adressage IPv6 sous ces conditions!

Retour sommaire

Notions abordées

  • représentations : binaire, octal, hexadécimal

Représentation binaire

Base dix

Habituellement, nous représentons les valeurs entières dans le système décimal, on dit aussi en base 10. Nous utilisons les dix chiffres de 0 à 9. La position des chiffres définit la valeur associée à ce chiffre. Par exemple, 542 est compris comme

542 = 5 x 100 + 4 x 10 + 2

Les différents chiffres correspondent aux puissances successives de 10 :

542 = 5 × 102 + 4 × 101 + 2 × 100

Base deux

L’information numérique, qu’il s’agisse de valeurs entières, de textes, d’images, ou de sons est en fin de compte représentée par des suites de 0 et de 1. On parle de bit : un bit peut prendre deux valeurs, 0 ou 1.

READ  Lire au présent de l'indicatif

Le système binaire permet d’écrire les valeurs entières en n’utilisant que les deux chiffres 0 et 1. On utilise alors la base 2.

De même que pour la base 10, les positions des chiffres sont associées aux puissances successives de 2

20 = 1 ; 21 = 2 ; 22 = 4 ; 23 = 8 ; 24 = 16 ; 25 = 32 ; 26 = 64 ; etc.

Ainsi la valeur entière qui correspond à la représentation binaire 101010 est

1 × 25 + 0 × 24 + 1 × 23 + 0 × 22 + 1 × 21 + 0 × 20
= 1 × 32 + 0 × 16 + 1 × 8 + 0 × 4 + 1 × 2 + 0 × 1
= 42

Il nous faut pouvoir indiquer que 101010 est une représentation binaire et non une représentation décimale, qui serait comprise cent un mille dix (ou encore une représentation dans une autre base…).

On notera par exemple 0b101010 ou (101010)2, ou encore 101010.

On distingue donc les valeurs entières (les entiers) et leur représentation.

  • On utilise habituellement la représentation décimale.
  • D’autres représentations sont possibles. En particulier, dans le monde du numérique, la représentation binaire est souvent utilisée.

À une valeur entière donnée est associée une représentation décimale, mais aussi une représentation binaire.

10 = 2

que l’on préfèrera écrire

(10)2 = 2

Expliquez ce que peut signifier le signe ‘=’ dans l’équation suivanteque l’on préfèrera écrire

Solution

Cette équation signifie que 10 en base 2 représente la même valeur que 2 en base 10. En d’autres termes, pour des êtres qui ont 1 doigt à chaque main (et deux mains), dire j’ai 10 bonbons, reviens au même que dire j’ai 2 bonbons pour nous 😉

Donnez les valeurs entières représentées par (0100)2, (10101)2, (101)2, (0101)2 et (00101)2.

Comparez les valeurs entières représentées par (11)2 et (100)2, (111)2 et (1000)2.

Comment reconnaitre très rapidement un nombre impaire en représentation binaire ? Et un nombre paire ?

Solution

(0100)2 = (4)10

(10101)2 = (21)10

(101)2 = (5)10

(0101)2 = (5)10

(00101)2 = (5)10

(100)2 est le nombre juste après (11)2, en d’autres termes : (11)2 + 1 = (100)2

De même pour les deux autres nombres.

La représentation binaire d’un nombre impaire finit par 0, Celle d’un nombre paire finit par 1.

De manière générale, quelle méthode employer pour trouver la représentation binaire d’une valeur entière ?

Solution

On réalise des divisions successives par 2, puis on lit les restes en partant D’EN BAS.

conversion décimal vers binaire exemple

Quelle est la représentation binaire de (14)10 et (78)10?

Solution

(14)10 = (1110)2

(78)10 = (1001110)2

Combien de valeurs différentes peut-on coder sur 8 bits ?

Solution

Sur 1 bit, on peut coder 2 valeurs différentes : 0 et 1.

Sur 2 bits, on peut coder 4 = 22 valeurs différentes : 00, 01, 10 et 11.

Sur 3 bits, on peut coder 8 = 23 valeurs différentes

Sur 8 bits, on peut coder 256 = 28 valeurs différentes

Conversion d’un nombre décimal en nombre binaire

Pour expliquer ce type de conversion, on peut revenir sur le système décimal.
Si nous divisons le nombre (543)10 par 10, nous obtenons comme quotient 54 et 3 comme reste. Cela signifie que ce nombre équivaut à :
(54 x 10) + 3
Le reste 3 est le chiffre indiquant le nombre d’unités.
En redivisant ce quotient (54) par 10, nous obtenons 5 comme deuxième quotient et 4 comme reste. Ce reste donne le deuxième chiffre du nombre, donc celui des dizaines.
Enfin, si l’on divise ce deuxième quotient par 10, nous obtenons 0 et il restera 5 qui représentera le chiffre des centaines.
principe d'une conversion en décimal

Résumer du principe de conversion

En divisant successivement un nombre par la base (10) et en ne conservant que les restes, on a réussià exprimer le nombre par des chiffres inférieurs de 10. Mais attention, il faut lire les restes de bas en haut.

Conversion binaire

Maintenant si nous divisons un nombre décimal par 2, le quotient indique le nombre de fois que 2 est contenu dans ce nombre et le reste indique le chiffre des unités dans l’expression du nombre binaire.
Soit N le nombre, Q1 le quotient et R1 le reste, nous avons :
N = (Q1 x 2) + (R1 x 1)
N = (Q1 x 21) + (R1 x 20)
Exemple :
principe d'une conversion en binaire
soit :
N = (22 x 2) + (0 x 1) = 44.

READ  Formule pour calculer la masse volumique

Pour obtenir l’expression binaire d’un nombre exprimé en décimal, il suffit de diviser successivement ce nombre par 2 jusqu’à ce que le quotient obtenu soit égal à 0.
Comme pour la conversion dans le système décimal les restes de ces divisions lus de bas en haut représentent le nombre binaire.
conversion décimal vers binaire du nombre 44
(44)10 = (101100)2.

Octets

On a l’habitude de regrouper les bits par groupe de 8 bits : 1 octet. Comme les processeurs, n’opèrent généralement pas sur chaque bit individuellement, et que depuis les année 1970, le matèriel traite les bits huit par huit, on exprime les capacités de mémorisation des mémoire informatique (méméoire vive, disque dur, DVD…) en octet.

octets, poid fort faible.

Qu’est ce qu’un bit de poids fort, un bit de poid faible ?

Solution

Le bit de poids fort, (en anglais Most Significant Bit, ou MSB) est le bit, dans une représentation binaire donnée, ayant la plus grande valeur (celui de gauche dans la représentation positionnelle habituelle).

Le bit de poids faible(en anglais Least Significant Bit, ou LSB) est pour un nombre binaire le bit ayant dans une représentation donnée la moindre valeur (celui de droite dans la représentation positionnelle habituelle).

Les préfixes kilo, méga, giga, téra, etc., correspondent aux mêmes multiplicateurs que dans tous les autres domaines : des puissances de 10. Appliqué à l’informatique, cela donne :

1 kilooctet (ko) = 103 octets = 1 000 octets 1 mégaoctet (Mo) = 106 octets = 1 000 ko = 1 000 000 d’octets 1 gigaoctet (Go) = 109 octets = 1 000 Mo = 1 000 000 000 d’octets 1 téraoctet (To) = 1012 octets = 1 000 Go = 1 000 000 000 000 d’octets 1 pétaoctet (Po) = 1015 octets = 1 000 To = 1 000 000 000 000 000 d’octets

La normalisation des préfixes binaires de 1998 par la Commission électrotechnique internationale spécifie les préfixes suivants pour représenter les puissances de 2 :

  • kibi pour « kilo binaire » ;
  • mébi pour « ga binaire » ;
  • gibi pour « giga binaire » ;
  • tébi pour « ra binaire » ;

et ainsi de suite.

Concernant les multiples de l’octet, cela donne :

kibioctet (Kio) = 210 octets = 1 024 octets 1 mébioctet (Mio) = 220 octets = 1 024 Kio = 1 048 576 octets 1 gibioctet (Gio) = 230 octets = 1 024 Mio = 1 073 741 824 octets 1 tébioctet (Tio) = 240 octets = 1 024 Gio = 1 099 511 627 776 octets 1 pébioctet (Pio) = 250 octets = 1 024 Tio = 1 125 899 906 842 624 octets 1 exbioctet (Eio) = 260 octets = 1 024 Pio = 1 152 921 504 606 846 976 octets 1 zébioctet (Zio) = 270 octets = 1 024 Eio = 1 180 591 620 717 411 303 424 octets 1 yobioctet (Yio) = 280 octets = 1 024 Zio = 1 208 925 819 614 629 174 706 176 octets

Usages courants

L’usage de cette norme ne s’est pas encore généralisé. Malgré tout, les dernières versions de certains logiciels, voire de systèmes d’exploitations (comme Ubuntu à partir de la version 10.10 et Mac OS X à partir de Snow Leopard) , en tiennent maintenant compte. Par contre, d’autres comme Microsoft Windows continuent d’utiliser des valeurs binaires avec des préfixes SI. De même les fabriquants de disques durs continuent de donner les capacités, en gigaoctet, téraoctet… au lieu de les donner en gibioctet, tébioctet… (vous pourrez lire l’article de wikipédia)

Un disque dur a une capacité de 2 To, quelle est sa capacité exprimée en Tio ?

Solution

2 To = 2 000 000 000 000 octets

Or,

1 Tio = 1 099 511 627 776 octets ? Tio = 2 000 000 000 000 octets

Donc ? = 2 000 000 000 000 / 1 099 511 627 776 = 1,8 Tio Ce qui est moins « vendeur » car plus petit.

capture d'écran de la capacité d'un disque dur

Quel est le problème ?

Solution

Les valeurs sont en Gio (gibioctet) et non en Go (gigaoctet)

Représentation hexadécimale

L’hexadécimal correspond à la base seize.

Pour la base dix, nous avons besoin de dix chiffres différents : 0, 1, 2, …9.

Pour la base deux, nous avons besoin de deux chiffres différents : 0 et 1.

Pour la base seize, nous avons besoin de seize chiffres différents : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

READ  Que veut dire inférieur

La base seize est très pratique pour condenser l’écriture des nombres en base deux ! Par exemple, le nombre 135 s’écrit en base deux : (10000111)2 , on regroupe les chiffres par 4 en partant de la droite, et on donne la représentation en base seize de chaque nombre ainsi obtenu. Soit (10000111)2 = (1000 0111)2 = (8 7)16

Relation entre les nombres binaires et les nombres hexadécimaux

Ilfaut exprimer chaque caractère hexadécimal à l’aide de 4 informations binaires.
conversion hexadecimal binaire

Convertissons !

Convertir les nombres suivant dans les trois bases : binaire, décimale et hexadécimale : 18A93 ; 2012 ; 1001100 ; 10523 ; A1D10 ; 1110010011

Utilisation de la calculatrice Windows

Convertissons automatiquement !

Vérifier les résultats obtenus à la manipulation précédente à l’aide de la calculatrice WIndows réglée en mode « Programmeur »

Supplément : Calcul booléen

Le terme booléen vient du nom du mathématicien britannique George Boole . Il est le créateur de la logique moderne qui s’appuie sur l’algèbre qui porte désormais son nom : l’algèbre de Boole.

Un booléen est une donnée dont la valeur ne peut prendre que deux états, soit l’état vrai soit à l’état faux. On utilise également le bit pour représenter des booléens : ainsi un 0 représente la valeur faux et un 1 représente la valeur vrai.

Opérateurs booléens

On définit sur ces valeurs booléennes trois opérations : la négation, la conjonction et la disjonction, également appelées le NON, le ET et le OU logiques.

Le NON logique

Le NON logique d’un booléen a se définit par :

aNON a0110NON a vaut VRAI si et seulement si a vaut FAUX.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

NON a vaut VRAI si et seulement si a vaut FAUX.Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le ET logique

Le ET logique entre deux booléens a et b se définit par :

aba ET b000010100111a ET b vaut VRAI si et seulement si a vautVRAI et b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

a ET b vaut VRAI si et seulement si a vaut VRAI et b vaut VRAICet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le OU logique

Le OU logique entre deux booléens a et b se définit par :

aba OU b000011101111a OU b vaut VRAI si et seulement si a vautVRAI ou b vaut VRAI

a OU b vaut VRAI si et seulement si a vaut VRAI ou b vaut VRAI

Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Equivalences

Il est possible de définir l’opérateur OU logique à partir du NON logique et du ET logique. En effet, si a et b sont des booléens alors a OU B = NON ((NON a) ET (NON B)).

On peut utiliser les tables de vérités pour démontrer cette égalité. On construit une table dans lesquelles les colonnes représentent les différentes sous-expressions dont nous avons besoin. Les contenus des colonnes sont construits en appliquant aux colonnes connues les tables de vérité connues définies ci-dessus.

Dans notre cas en plus de a, b, parmi les expressions utiles à notre calcul on trouve NON a, NON b. Une fois la table remplie pour ces deux expressions on peut déterminer celle de l’expression (NON a) ET (NON b) : si on définit x=NON a et y= NON b, alors (NON a) ET (NON b)=x ET y.

abNON aNON b(NON a) ET (NON b)xyx ET y00111011001001011000

On complète alors la table avec les expressions NON ((NON a) ET (NON b)) et (a OU b)

abNON aNON b(NON a) ET (NON b)NON((NON a) ET (NON b)) (a OU b)xy(x ET y) = zNON z0011100011001110010111100011

L’égalité des contenus des deux dernières colonnes démontrent l’équivalence des deux expressions.

Suite: Codage des caractères

Soyez le premier a laisser un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *