"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!
A voir également:
- "Informatique fondamentale" : système bi
- Le code ascii en informatique - Guide
- Jargon informatique - Télécharger - Bureautique
- Que veut dire url en informatique - Guide
- Souris informatique - Guide
- Bal informatique ✓ - Forum Mail
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) ...
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.
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
"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...
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