Représentation des informations
Page réalisée par:
Philippe Moreau
UPJV

Après avoir fait un petit topo sur la définition d'un format d'écriture de informations, on s'intéressera au représentations:
   -  des chiffres (code DCB, code pondéré, code de Gray)
   -  des caractères (code ATI, code ISO6, code ASCII, UNICODE)
   -  des nombres (entiers, entiers signés, fractionnaires virgule fixe ou flottante, norme IEEE754)
   -  d'autres informations (pixels, chiffres d'afficheur, ...)

Définition d'un format d'écriture

Pour représenter les informations dans une machine, le principe adopté est celui du "tout ou rien" conséquence de l'utilisation de l'électronique numérique (ou digitale(en opposition avec l'électronique analogique)). De ce fait (et de façon naturelle) la symbolisation du "tout ou rien" s'est faite par les symboles 1 ou 0. En informatique, on a coutume de dire d'une machine contient des informations 0 ou 1 aussi appelés des bits (pour: binary digit).

Un bit, pour représenter des informations, ne présentant que très peu d'intérêt, on regroupe les bits par paquets pour pouvoir coder une information (ou à l'inverse interpréter un codage pour retrouver l'information codée).

Dans ce qui suit, les bits sont regroupés par blocs de 4 bits (quartet) puis par paquets de 8 bits (octet). De façon générale les regroupements correspondent à des puissances de 2.

remarque: il va de soi que certaines informations sont représentées sur des formats plus importants en machine, les propos qui sont tenus ici seront donc à adapter aux formats réellement utilisés.

Représentation des chiffres

Le code DCB

Le principe du code DCB (Décimal Codé Binaire) est de reprendre l'interprétation des différents chiffres, de la base 10, en base 2 et "cadrer" chaque chiffre sur un quartet. Ainsi, à un chiffre on fait correspondre un quartet et à l'inverse à un quartet on associe un chiffre (si cela est possible).

La table de codage est alors la suivante:

Table de codage DCB
00 0 0 050 1 0 1
10 0 0 160 1 1 0
20 0 1 070 1 1 1
30 0 1 181 0 0 0
40 1 0 091 0 0 1

Les codes pondérés

L'interprétation des informations codés avec un "code pondéré" repose sur le principe suivant:

A chaque bit on attribue un poids, il suffit alors de multiplier ces poids par les bits correspondants et d'en faire la somme, pour retrouver l'information qui a été codée. Ainsi, le quartet b1b2b3b4 codé avec le cope pondéré p1p2p3p4 s'interprétera:

INFO = b1 . p1 + b2 . p2 + b3 . p3 + b4 . p4

remarque: le code pondéré le plus utilisé est le code pondéré 8 4 2 1(qui correspond à l'écriture classique en base 2).


Le code de Gray: Un autre code classique

Le code de Gray, également appelé code binaire réfléchi, n'est pas vraiment utilisé pour la représentation de chiffres mais plutôt pour la représentation d'états. Ses particularités sont que:
- en passant d'une information à la suivante, un seul bit est modifié.
- cette propriété est vraie pour les informations aux extrémités (code circulaire)
Exemple de code de Gray sur un quartet (on a représenté les "miroirs" qui établissent la réflexion (ou symétrie) sur certaines colonnes):
0 0 0 0
0 0 0 1    symétrie sur la colonne "0" (on change l'état "1")
0 0 1 1
0 0 1 0    symétrie sur les colonnes"0" et "1" (on change l'état "2")
0 1 1 0
0 1 1 1
0 1 0 1
0 1 0 0    symétrie sur les colonnes "0", "1" et "2"(on change l'état "3")
1 1 0 0
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 0
1 0 1 1
1 0 0 1
1 0 0 0
Représentation des caractères

Remarque: Avant l'apparition des codes décrits ci-dessous, il existait déjà des principes de codage des caractères (Exemple: Le Morse). Le Morse est basé sur l'émission de signaux "courts ou longs". Il aurait pu être conservé si chaque code avait eu le même nombre de signaux. En fait la distinction des lettres (puique la longueur du code est variable) se fait en interprétant un troisième signal qui est "la pause" (pas de signal pendant un laps de temps).

le code ATI (Alphabet Télégraphique International) (code à 5 bits)

Bien que ne possédant que 5 bits (donc, a priori, 32 codages différents possibles), le code ATI permet de représenter tous les caractères, tous les chiffres et un certain nombre d'autres caractères. Ceci est rendu possible grâce à l'utilisation de "caractères" spéciaux "lettre" (1 1 1 1 1) et "chiffre" (1 1 0 1 1) qui permettent de sélectionner la colonne dans laquelle s'effectuera le décodage de la suite du texte.

Exemple: l'information 1 0 0 0 0 sera décodée E si la lecture doit s'effectuer dans la colonne "lettre" (et décodée 3 sinon).

Table du Code ATI
caractères spéciauxcode"lettre""chiffre"code "lettre""chiffre"code
retour chariot00010E3 10000P001101
changement de ligne01000F!10110 Q111101
code "lettres"11111G%01011 R401010
code "chiffres"11011H£00101 S'10100
espace00100I801100 T500001
non utilisé00000Jsonnerie11010 U711100
"lettre""chiffre"codeK(11110 V=01111
A-11000L)01001W211001
B?10011M.00111X/10111
C:01110N,00110Y610101
D*10010O900011Z+10001

le code ISO6 (International Standard Organisation) (code à 6 bits)

Ce code permet la suppression de l'ambiguïté de décodage due à l'utilisation des caractères spéciaux "lettre" et "chiffre". Pour coder (ou décoder) les informations il suffit de concaténer les bits de poids forts suivis des bits de poids faibles pour obtenir les 6 bits correspondant à l'information.

Exemple: le caractère G se représentera par: 1 0 0 1 1 1

Remarque: ce code, qui n'est plus utilisé, présente l'inconvénient majeur de ne pas pouvoir coder (entre autres) les minuscules.

Table du Code ISO6
poids forts
000001010011100101 110111
poids
faibles
000sp(08 nulHPX
001ht)19AIQY
010lf*2:BJRZ
011vt+3;CKS[
100ff,4<DLT£
101cr-5=EMU]
110so.6>FNVesc
111si/7'G OWdel

le code EBCDIC (Extended Binary Coded Decimal Interchange Code) (code à 8 bits)

Ce code permet de résoudre le problème de représentation des minuscules. Code à 8 bits il parait également plus proche du format classique utilisé dans une machine, à savoir l'octet. La lecture de la table de codage s'effectue de façon similaire à la lecture de la table ISO6.

Exemple: le caractère X se représentera par: 1 1 1 0 0 1 1 1

Remarque: en observant la table de ce code, on s'aperçoit qu'un grand nombre de codes n'ont pas d'interprétation. On dit que ce code est un code "creux".

Table du Code EBCDIC
poids forts
0000000100100011010001010110 0111100010011010101111001101 11101111
poids
faibles
0000Nul    sp&_         0
0001       / aj  AJ 1
0010         bks BKS2
0011         clt CLT3
0100pfresbyppn     dmu DMU4
0101pfresbyppn     env ENV5
0110pfresbyppn     fow FOW6
0111pfresbyppn     gpx GPX 7
1000         hqy HQY8
1001         irz IRZ9
1010    ¢!  :         
1011    .$ ,#         
1100    <* %@         
1101    ()-'         
1110    +;>=         
1111    ¦¬ ?"         

le code ASCII (American Standard Code for Information Interchange) (code à 7 bits)

Ce code "standard", est actuellement le plus répandu. Le principe de lecture de la table est identique à ceux précédant.

Exemple: le caractère B se représentera par: 1 0 0 0 0 1 0

Remarque1: Pour facilité la lecture des informations on a coutume d'écrire celles-ci en hexadécimal (pour éviter d'écrire un trop grand nombre de caractères 0 ou 1 ce qui devient rapidement illisible). Ainsi le caractère B se représentera par 42 .

Remarque2: Un autre intérêt du code ASCII réside dans le fait que celui-ci n'occupe pas tout l'emplacement réservé (l'octet). Il reste donc un bit de libre qui pourra être interprété au gré de l'utilisateur.

Table du Code ASCII
poids forts
000001010011100101 110111
poids
faibles
0000Nuldlesp 0@P\p
0001sohdc1!1AQaq
0010stxdc2"2B Rbr
0011etxdc3#3CScs
0100eotdc4$4DTdt
0101enqnak%5EUeu
0110acksyn&6FVfv
0111beletb'7GWgw
1000bscan(8HXhx
1001htem)9IYiy
1010lfsub*:JZjz
1011vtesc+;K[k{
1100fffs,<L\l|
1101crgs-=M]m}
1110sors.>N^n˜
1111sius/!O_odel

Remarque: Dans les tables des différents codes, il apparait un certain nombre de caractères non "affichable" . Voici la signification de certains d'entre eux qui sont très utiles.

spspaceespace
bsback spaceretour en arrière d'un caractère
lfline feedpassage à la ligne suivante
crcarriage returnretour en début de ligne

L'UNICODE

ce code qui à l'origine était sur 16bits (65536 codages possibles) est actuellement décliné en 17 "plans" de 65536 codages possibles.

Ce code permet cette fois de représenter la plupart des symboles connus. Que ce soit des signes de ponctuation, signe mathématiques, symboles monétaire,... les caractères classiques des alphabets, les bases des idéogrammes, également des symboles phonétiques, des symboles utilitaires de la vie courante (jeux, météorologie, musique, etc...). Le consortium Unicode établit en parallèle une normalisation pour l'appelation de chaque caractère. Pour plus de d'information: site officiel du consortium

Dans le premier plan (plan 0) dont les codes vont de 0000 à FFFF (en hexadécimal que l'on trouvera normalisé sous la forme U+0000 à U+FFFF) on trouve par exemple:

- de U+0000 - U+007F le Latin de base (le code ASCII)

- de U+00A0 - U+024F le Supplément Latin, et la Latin étendu (entre autre les caractères accentués)

- de U+0370 - U+03FF le Grec et Copte

- de U+0590 - U+05FF l'Hébreu

- de U+0600 - U+06FF l'Arabe

- de U+4E00 - U+9FCB les Sinogrammes (utilisés en Chinois, Japonais, Coréen, Vietnamien)

- etc...

 

Représentation des nombres

Rappel: On suppose que le format utilisé pour la représentation est toujours un octet.

les entiers (positifs)

De façon naturelle, la représentation des nombres entiers se fera en utilisant l'écriture binaire de ceux-ci (complétée à gauche par des bits à 0 pour remplir le format d'écriture). On pourra alors appliquer les algorithmes classiques pour effectuer les opérations arithmétiques de base. Toutefois, étant donné qu'avec un octet on ne peut avoir que 256 écriture différentes, il se peut que les résultats des opérations soient erronés (dépassement de la capacité de représentation).

Exemple: représentation de 98

(98)10=(1100010)2 on complète ensuite à gauche par 1 zéro et on obtient pour 98 l'octet: 0 1 1 0 0 0 1 0

Remarque: Capacité de représentation, on peut alors coder les entiers de 0 à 255


Pour la représentation des nombres négatifs et la représentation des nombres fractionnaires (nombres à virgule) il faut cette fois trouver un algorithme de codage de ceux-ci.

 

Les entiers signés

Idée: Les nombres négatifs sont signalés par le caractère "-" dans l'écriture standard. D'où l'idée de se servir du bit le plus à gauche (ici le bit7) pour indiquer que le nombre codé représente un nombre négatif.

1ère Solution envisagée: Le bit 7 code le symbole "-" (ou "+") et les 7 autres bits l'écriture binaire du nombre.

Exemple: représentation de -9

(9)10=(1001)2 on l'écrit ensuite sur un octet en complétant à gauche par 4 zéros, on obtient alors 0 0 0 0 1 0 0 1

il suffit ensuite de mettre le bit 7 à 1 et on obtient pour -9 l'octet: 1 0 0 0 1 0 0 1

Problèmes: Avec ce principe de représentation on note que:

- Il y a deux représentations de zéro 0 0 0 0 0 0 0 0 qui représente +0 et 1 0 0 0 0 0 0 0 qui représente -0.

- L'algorithme classique d'addition (sur les nombres binaires) ne fonctionne pas. Exemple si on fait faire l'opération suivante (-9 + 5) à la machine:

on prend les codes de -9 (1 0 0 0 1 0 0 1) et de 5 (0 0 0 0 0 1 0 1) on les additionnent et on obtient:

1 0 0 0 1 1 1 0 qui est le code de -14 ≠ -4 (-4 = -9+5)


2ème Solution possible: L'emploi du complément à 1, qui s'obtient en soustrayant chaque bit à 1 (ce qui revient à inverser tous les bits).

Exemple: représentation de -9

(9)10=(1001)2 on l'écrit ensuite sur un octet en complétant à gauche par 4 zéros, on obtient alors 0 0 0 0 1 0 0 1

il suffit ensuite d'inverser tous les bits et on obtient pour -9 l'octet: 1 1 1 1 0 1 1 0

Problèmes: Là encore, avec ce principe de représentation on note que:

- Il y a deux représentations de zéro 0 0 0 0 0 0 0 0 qui représente +0 et 1 1 1 1 1 1 1 1 qui représente -0.

- L'algorithme classique d'addition (sur les nombres binaires) ne fonctionne toujours pas. Exemple si on fait faire l'opération suivante (-9 + 15) à la machine:

on prend les codes de -9 (1 1 1 1 0 1 1 0) et de 15 (0 0 0 0 1 1 1 1) on les additionnent et on obtient sur un octet, l'octet:

0 0 0 0 0 1 0 1 qui est le code de 5 ≠ 6 (6 = -9+15)


3ème Solution (solution adoptée): Le principe du complément à 2. Pour cela, observons (sur 8 bits) le résultat obtenu en additionnant un mot binaire et son complément à 1.

Soit x un octet et x son complément à 1.

- On a alors, sur 8 bits: x + x = 1 1 1 1 1 1 1 1

- d'où, sur 8 bits: x + x + 1 = 0 0 0 0 0 0 0 0

  et on peut donc écrire, qu'en considérant un format fixé on a: x + x + 1 = 0

  D'où l'idée de prendre comme représentation de -X la valeur: -x = x + 1

Exemple1: représentation de -13

(13)10=(1101)2 on l'écrit ensuite sur un octet en complétant à gauche par 4 zéros, on obtient alors 0 0 0 0 1 1 0 1

on passe au complément à 1 en inversant tous les bits: 1 1 1 1 0 0 1 0

on ajoute enfin 1 et on obtient pour -13 l'octet: 1 1 1 1 0 0 1 1

Exemple2: représentation de -128

(128)10=(10000000)2 on l'écrit ensuite sur un octet (pas besoin de compléter), on obtient donc 1 0 0 0 0 0 0 0

on passe au complément à 1 en inversant tous les bits: 0 1 1 1 1 1 1 1

on ajoute enfin 1 et on obtient pour -128 l'octet: 1 0 0 0 0 0 0 0

Remarque: Capacité de représentation, on peut alors coder (sur un octet) les entiers relatifs de -128 à +127

 

Les nombres fractionnaires (en virgule fixe)

Dans la représentation des nombres "non entiers" (abusivement appelés réels et que nous qualifierons de fractionnaires) il faut pouvoir considérer une virgule. Et pour savoir comment placer cette virgule il existe deux grands principes: La représentation dite en virgule fixe et la représentation dite en virgule flottante.

Dans la représentation en virgule fixe, méthode la plus simple, la virgule est positionnée une fois pour toute dans le format utilisé. Comme l'information correspond à l'écriture bianire du nombre, les bits placés à gauche de la virgule correspondent aux puissances positives et les chiffres placés à droite aux puissances négatives

Exemple: Sur l'octet (notre format de représentation) on a placé la virgule entre le bit2 et le bit3.

On dira alors que l'écriture du nombre fractionnaire est au format [ 5 , 3 ]

Ainsi l'octet: 1 1 0 0 0 1 0 1 représentera le nombre 1 1 0 0 0 , 1 0 1 en binaire

et donc la valeur 24+ 23+ 2-1+ 2-3 = 12 + 8 + 0,5 + 0,125 = 24,625

l'octet: 1 1 0 0 0 1 0 1 pourra donc représenter 24,625

Remarques:

addition: Avec cette méthode de représentation on peut utiliser l'addition binaire (faite par la machine) en gardant un résultat qui peut être interprété.

représentation des nombres fractionnaires signés: l'algorithme classique de l'addition pouvant être utilisé, on peut donc utiliser la technique du complément à 2 pour représenter les nombres signés (ce qui permet d'obtenir un résultat interprétable).

exemple: l'octet 1 1 0 0 0 1 0 1, pourra aussi être la représentation de -7,375 (toujours au format [ 5 , 3 ])

explications: partant de l'octet 1 1 0 0 0 1 0 1 le bit de gauche nous informe que le nombre est négatif, on passe donc au complément à 1 (0 0 1 1 1 0 1 0) on ajoute 1 et on obtient: 0 0 1 1 1 0 1 1.

on mettra donc derrière le signe "-" la valeur (111,011)2 =(7,375)10.

Remarque: Capacité de représentation, en raisonnant toujours sur le format [ 5 , 3 ], on obtient que les nombres représentables sont compris dans l'intervalle:

    de 0 à 31,875 si on considère les nombres non signés

    et de -16 à +15,875 si on les considère signés

De plus on observera que l'échantillonnage dans cet intervalle est régulier. C'est à dire, que les nombres représentables sont tous séparés d'un "Pas" de 0,125 (dans le cas pris en exemple.

 

Les nombres fractionnaires (en virgule flottante)

La représentation en virgule flottante, repose sur l'observation suivante: Tout nombre N peut s'écrire sous la forme suivante: N = M . BE où B est la base et où M et E sont appelés Mantisse et Exposant. Dans ce cas il suffit alors d'avoir une représentation de la mantisse et de l'exposant pour pouvoir retrouver le nombre (sachant qu'ici la base utilisée est la base 2).

Exemple: on pourrait, sur un octet réserver 5 bits pour représenter la mantisse et les 3 bits restant pour représenter l'exposant.

remarque: Il semble évident, qu'avec cette méthode, réaliser une addition sur deux formats (en binaire) n'a aucun sens. En conséquence la technique du complément à 2 n'a plus lieu d'être utilisée. Et on va donc revenir au principe de représenter le signe "-" et pour cela on réserve un bit (celui de gauche) pour symboliser le signe.

adaptation de la norme IEEE754

On va maintenant décrire une adaptation de la norme IEEE754 qui est une norme standard pour la représentation des nombres à virgule flottante en binaire. Adaptation, car cette norme n'est pas définie sur 8 bits. On va voir que dans cette norme, l'écriture de la mantisse va être normalisée et que la valeur de l'exposant ne sera pas codée en prenant l'écriture binaire de celle-ci.

la Mantisse: on va dans un premier temps écrire la mantisse sous la forme: 1,xxxxx (ceci est toujours possible, sauf pour la valeur 0). On ne représentera alors que la partie "xxxxx" (ce qui permet d'économiser un bit) en cadrant cette représentation sur la gauche.

exemple: si on doit représenter un nombre dont la mantisse correspond à 1,011 sur 6 bits, on trouvera: 011000

l'Exposant: pour l'exposant, on prend dans un premier temps sa représentation (nombre entier signé) sur le format fixé, puis (la valeur 0 étant réservée) on va biaiser l'exposant en y ajoutant la valeur 2nbe-1-1 (où nbe correspond aux nombre de bits réservés pour l'écriture de l'exposant).

(rmq1: le fait de biaiser l'exposant, revient à décaler la prise en compte des nombres compris dans l'intervale de la valeur du biais)

(rmq2: le fait de réserver la valeur 0 pour l'exposant permet est dû entre autre au fait que l'on souhaite que la valeur "globale" 0 représente bien 0. Or sans autre contrainte la valeur 0 est sensée représenter 1.

(rmq3: Pour information: pour l'exposant, la valeur 2nbe-1 est aussi une valeur réservée qui permet de représenter les "infinis".

exemples d'applications: Sur l'octet (notre format de représentation) on va réserver 3 bits pour l'exposant, et placer ces 3 bits juste après le bit de signe. Il restera donc 4 bits pour écrire la mantisse

exemple 1: codage de 2,5

1 - on convertit le nombre en binaire (2,5)10 = (10,1)2

2 - on écrit le nombre avec une mantisse normalisée 10,1 = 1,01x 21

3 - on ré-écrit la partie fractionnaire dans le format (ici 4 bits) en la cadrant à gauche. D'où la mantisse: 0100

4 - on convertit ensuite l'exposant en binaire (1)10 = (1)2

5 - on ré-écrit 1 dans le format (ici 3 bits) en le biaisant (ajoutant) 011 : 001 + 011 = 100

6 - le nombre étant positif le bit de signe sera donc à 0 : S = 0

7 - On obtient donc que 2,5 sera codé par l'octet : 0 1 0 0 0 1 0 0

exemple 2: interprétation de l'octet 10100110

on reprenant les codes couleurs ci-dessus, on a: 10100110 = 1 0 1 0 0 1 1 0

1 - puisque le premier bit est 1 , le nombre sera précédé du signe -

2 - la partie exposant 0 1 0 est ensuite "dé-biaiser" en soustrayant 011 et donc: 010 - 011 = 111 (sur 3 bits) ce qui correspond à -1

3 - la partie "mantisse" 0 1 1 0 nous donne la mantisse normalisée 1,0110

4 - on obtient donc la valeur: -1,0110 x 2-1 (qui correspond à -1,375/2 en base 10)

5 - et on obtient que l'octet : 1 0 1 0 0 1 1 0 se décodera : -0,6875

Remarque: Capacité de représentation, en raisonnant toujours sur le format [ S , 3 , 4 ], on obtient que les nombres représentables sont compris dans l'intervalle:

    de -31 (-31 pour: -1,1111.24) à +31 (+31 pour: +1,1111.24)

Si on observe maintenant l'échantillonnage dans cet intervalle on va s'apercevoir que celui-ci est très irrégulier. En effet, sur les extrémités on passe de:

    de ±31 (1,1111.24) à ±30 (1,1110.24) (soit un pas de 1 et aucun nombre représentable entre deux)

alors qu'aux abords de 0 on passe de:

    de ±0,125 (1,0000.2-3) à ±0,1528125 (1,0001.2-3) (soit un pas de 0,0078125 ! donc très "fin")

 

Représentation d'autres informations

exemple: des "pixels"

En graphisme, lorsque l'on veut mettre en œuvre des algorithmes de tracés sur un écran "noir et blanc" (monochrome); en règle générale on associe un pixel (point sur l'écran) à un bit de la mémoire écran. Ainsi, un octet représentera un ensemble de 8 points écran. Par convention on associera le terme "allumé" à une information 1 et "éteint" à l'information 0. Ces termes "allumé", "éteint" sont à prendre au sens logique et non physique (l'interprétation physique dépendra du mode de travail (couleur de fond)).

exemple: l'octet 10011011 représentera la portion d'écran (8 pixels) suivante:

remarque: Pour réaliser des manipulations sur un pixel, on effectuera alors des opérations logiques entre l'octet contenant le bit associé à ce pixel et un autre octet (à calculer).

autre exemple: des "chiffres" d'afficheur 7 segments

Lorqu'on utilise des panneaux avec afficheurs 7 segments (exemples: affichage de l'heure, la date, etc...) on fait correspondre à chaque chiffre un octet. Dans cet octet on retrouve un bit par segment, et le huitième est en général utilisé pour représenter un point "décimal" situé à droite du chiffre

remarque: Là encore, pour réaliser des manipulations sur un chiffre, on effectuera souvent des opérations logiques sur l'octet représentant ce chiffre.

Rappels sur les opérateurs logiques en informatique

Voici la présentation des tables des opérateurs utilisés de façon classique. Le OU, le ET, le NON tels qu'ils existent en mathématiques mais également le OU exclusif (OUEx) utilisé fréquemment, surtout dans les langages assembleur.

Table du NON Logique
Tables du OU Logique
Tables du ET Logique
Tables du OU Exclusif Logique

remarque:En observant ces tables, on constate donc que le OU peut être utilisé pour "forcer" un bit à 1 (avec 1 le résultat est toujours 1 et avec 0 on conserve l'information initiale), que le ET peut être utilisé pour "forcer" un bit à 0 (avec 0 le résultat est toujours 0 et avec 1 on conserve l'information initiale) et que le OUEx permet d'inverser un bit (avec 1 le résultat est le complément (inverse) de l'information initiale et avec 0 on conserve l'information initiale) on peut aussi se servir du OUEx pour comparer deux valeurs. En effet on observe que lorsque les deux bits sont identiques OUEx vaut toujours 0 et lorsqu'ils sont différents OUEx vaut toujours 1.

Remarques

remarque 1

Un octet peut encore représenter des informations issues d'un codage qui vous est propre (exemples: 2 fois 4 bits, 4 fois 2 bits, 8 informations "vrai" "faux", etc...).

remarque 2

Un octet peut aussi représenter une information que l'on ne sait pas décoder. C'est le cas lorsque l'octet est une portion de code de programme, son interprétation se fera alors par le micro proccesseur.