"Informatique fondamentale" : système bi
babaz
-
babaz -
babaz -
Bonjour,
Pouvez-vous m'expliquer comment un ordinateur "traduit" des données binaires en informations intelligibles pour chacun (un chiffre ou une lettre, par exemple) ?
Quel composant indique au processeur que, "1000001" désigne, avec la norme ASCII, la lettre A ? Comment cette pièce parvient-elle à faire l'association ?
Par ailleurs, j'ignore totalement comment la "forme" sommaire d'un caractère est stockée.
Bien qu'il s'agisse du "b.a-ba" de l'informatique, je ne parviens pas à trouver d'informations sur ces mécanismes fondamentaux. Si vous pouviez m'aider, j'en serais ravi!
Je vous remercie!
Pouvez-vous m'expliquer comment un ordinateur "traduit" des données binaires en informations intelligibles pour chacun (un chiffre ou une lettre, par exemple) ?
Quel composant indique au processeur que, "1000001" désigne, avec la norme ASCII, la lettre A ? Comment cette pièce parvient-elle à faire l'association ?
Par ailleurs, j'ignore totalement comment la "forme" sommaire d'un caractère est stockée.
Bien qu'il s'agisse du "b.a-ba" de l'informatique, je ne parviens pas à trouver d'informations sur ces mécanismes fondamentaux. Si vous pouviez m'aider, j'en serais ravi!
Je vous remercie!
5 réponses
-
il y a les bits (1 ou 0) .il y a les octets (groupe de 8 bits) ..
explication :un bit =2 combinaisons (0 ,1); un groupe de 2 bits = 4 combinaisons 00,01,10,11... c'est 2² =4.....
un groupe de 3bits c'est 8 combinaisons 000,001,010,011,100,101,110,111, ....c'est 2³=8....
un octet c'est 2exp8...= 256 combinaisons ...soit chacunes des lettres du clavier a un équivalant en combinaison d'un octet (ou byte en anglais) ... -
un nombre ou un caractère (ce qui est la même chose) est codé en mémoire par des "0" et des "1".
c'est le programme qui dit au processeur : cette variable là est à traiter comme du texte et celle-là comme un nombre entier.
ainsi, la même combinaison de 0 et de 1 pourra être interprété différemment selon la définition qu'on lui donne.
si on lui dit que c'est un caractère ASCII, alors le caractère est codé sur 1 octet et pour savoir de quel caractère il sagit, on se réfère à la table ASCII.
si c'est un entier de base qui peut être positif ou négatif, alors il est codé sur 4, 6 ou 8 octets. le bit de poids fort correspond au signe de l'entier et les suivants à la valeur de l'entier, calculée avec les puissances de 2. -
Merci pour vos réponses qui, je dois le dire, laissent entière mon interrogation.
"si on lui dit que c'est un caractère ASCII, alors le caractère est codé sur 1 octet et pour savoir de quel caractère il sagit, on se réfère à la table ASCII. "
qui est ce "on se réfère" ? Comment "sait-il" qu'il doit s'y référer ? Comment sont "inscrites" les formes "originelles" des caractères (lettres, chiffres...) pour qu'il puisse, par la suite, nous les afficher ? Quels sont les mécanismes de ces perpétuelles conversions ?
Je vous remercie -
je ne connais pas tes bases en programmation, mais le plus simple c'est de passer par là. (je vais le faire avec des exemples en C parce que je ne connais presque que ça...)
tu créé une variable "caractere" qui est du type "char" (enfin, du type caractère quoi). en mémoire, cette variable prend 1 octet, soit 8bits. c'est donc une succession de 8 "0" ou "1". par exemple, 01000001
imaginons que tu veuilles afficher cette variable. ça se fait avec le printf. tu vas faire :
printf("%c", caractere);
le "%c" indiquant qu'il sagit d'un caractère. le processeur va donc lire la succession de 0 et de 1 correspondant à cette variable et l'interpréter comme étant un caractère ASCII. c'est lui qui selon la suite de 0 et 1 va aller chercher dans la table ASCII, trouver à quel lettre ça correspond puis l'afficher à l'écran. ici, il va afficher "A"
si maintenant, on avait fait
printf("%d", caractere);
le "%d" indique qu'on veut afficher un nombre entier. or, caractère n'est pas du type entier, mais du type caractère. qu'à cela ne tienne ! le processeur va aller voir la suite de 0 et de 1 correspondant et calculer l'entier correspondant. ici, c'est "65", il va donc afficher 65.
dans la mémoire, toutes variables est donc une suite de 0 et 1. c'est dans ton programme que tu va dire : ça, il faut l'interpréter comme un entier, celui-là comme un flottant et celui-ci comme un caractère". si tu ne dis pas au processeur comment il doit interpréter la suite de 0 et de 1, il ne sauras pas quoi en faire !!!
je crois avoir répondu à tes 3 questions, mais je n'ai peut-être pas été clair :s
dans tous les cas, le mieux pour toi est encore d'apprendre directement à travers des exercices de programmations... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci pour ta réponse wid²!
Toutefois, ce que tu dis suppose que l'ordinateur sache ce qu'est un caractère... comment le sait-il ?