Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cmt differencier un chiffre d’une lettre en binair

9 décembre 2022 à 20:54:37

Bonjour à tous !
J’ai essayé de comprendre comment fonctionnait le binaire (avec les puissances de 2 etc.), et j’ai vu aussi la table de conversion ASCII.
Mais par exemple 01000001 correspond à 65, et correspond aussi à la lettre A. Donc quand l’ordinateur reçoit ce code binaire, comment sait-il qu'il s'agit du caractere A ou le nombre 65??

Merci pour vos réponses

  • Partager sur Facebook
  • Partager sur Twitter
10 décembre 2022 à 22:57:20

Hello,

Il ne connait pas le caractère A en tant que tel. Comme il ne connait pas le nombre 65, pour lui c'est "juste" 8 fils dont 2 sont actif (courant élevé).

En fonction de s'il faut dessiner une lettre A ou calculer 65 et autre chose via les instructions machines c'est là qu'il va y avoir une différence.

  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2022 à 0:37:04

j'ai pas encore compris le principe pouvez vous m'expliquer plus ou me recommander un video sur youtube 

  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2022 à 11:22:56

Moi même j'ai du mal à expliquer car je ne sais pas comment expliquer que ça dépends juste de comment le programme traite l'information.

L'ordinateur lui ne fait pas la différence car même le nombre 65 n'existe pas pour lui. Ce qu'il a lui c'est seulement soit des fils avec une tension, soit sans tension electrique.

Quand tu dis que A c'est 65 c'est "0100 0001" en fait ce n'est que 8 fil (un bus) dont 2 ont une tension appliqué. C'est ensuite la puce (ton CPU par exemple) qui va via des transistor dire, je vais ici ou ici.

D'ailleurs ça ce voit assez bien en programmation en C par exemple :

char firstLetter = 'A';
char secondLetter = 'A';

char diff = firstLetter - secondLetter; // donne 0

(j'aurai pu mettre directement char diff = 'A' - 'A'; aurait fait pareil)

Par contre si je demande de print dans un terminal 'A' il va y avoir des instructions pour dire :

  • Je doit afficher un 'A'
  • C'est encodé avec ASCII (plus simple mais maintenant on a utf-8, utf-16, etc.)
  • Il utilise la font monospace
  • Il a mis une taille de 16px
  • Je vais voir quels pixels je dois allumer pour afficher le 'A' dans la font monospace de taille 16px

Mais ça c'est le code machine de l'application que tu utilise (le terminal dans l'exemple) qui indique ces instructions.

Je ne sais pas si c'est plus claire, après j'ai pas de vidéo de mon côté à montrer car je me suis jamais vraiment poser la question (en tout cas pas jusqu'a ce point).

-
Edité par quenti77 11 décembre 2022 à 11:24:48

  • Partager sur Facebook
  • Partager sur Twitter
12 décembre 2022 à 17:05:18

La lettre A a la valeur ASCII 65 (en décimal) ou 01000001 en binaire ou encore 41 en hexadécimal. ASCII c'est une norme pour définir le codage des caractères affichables.

L'ordinateur lui ne sait pas vraiment à quoi correspond la valeur décimale 65, il envoie cette valeur à un contrôleur d'affichage qui sait que la valeur 65 correspond une certaine table de pixels et cette table code pour l'affichage d'un 'A' sur l'écran, la table variant selon la langue, la fonte, la taille et le style.

(un 'A' en Calibri, Times New Roman, Courier  aura la valeur 65 en codage ASCII)
(dans un fichier, c'est toujours la valeur 65 si codage ASCII qui est enregistré sur le disque, et c'est à la lecture du fichier que le logiciel qui décode le fichier (notepad par exemple) va envoyer cette valeur au contrôleur d'affichage)

  • Partager sur Facebook
  • Partager sur Twitter