Comment fonctionne exactement le code binaire se converti en lettres Stack Overflow

En supposant que par « code binaire » vous voulez dire seulement des données anciennes (plaine de séquences de bits ou octets), et que par « lettres » vous voulez dire des caractères, la réponse est en deux étapes. Mais d'abord, le contexte.

Bon maintenant voici les deux étapes:

Les données, si elle est textuelle, doit être accompagnée d'une certaine manière par un codage de caractères. quelque chose comme UTF-8, Latin-1, US-ASCII, etc. Chaque schéma de codage de caractères spécifie en détail comment les séquences d'octets sont interprétées comme codepoints (et inversement comment codepoints sont codées sous forme de séquences d'octets).

Une fois que les séquences d'octets sont interprétées comme codepoints, vous avez vos personnages, parce que chaque personnage a un point de code spécifique.

En d'autres termes, pas chaque séquence d'octets signifie quelque chose sous forme de texte.

Voici un moyen de convertir des nombres binaires en caractères ASCII qui est souvent assez simple dans votre tête.

1 - Convertir tous les 4 chiffres binaires dans un chiffre hexadécimal.

Voici un binaire pour tableau de conversion hexadécimal:

Une fois que vous savez ce graphique, la conversion une chaîne de chiffres binaires dans une chaîne de caractères hexadécimaux est simple.

2 - Diviser la chaîne de chiffres hexadécimaux en paires.

Lors de la conversion d'un nombre en ASCII, tous les 2 chiffres hexadécimaux est un personnage. , PORTER la chaîne hexagonale en ensembles de 2 chiffres.

Vous diviser un nombre hexadécimal comme 7340298b392 cela en 6 paires, comme ceci:

(Remarquez que je préfixé 0, puisque j'avais un nombre impair de chiffres hexadécimaux.)

C'est 6 paires de chiffres hexadécimaux, donc ça va être 6 lettres. (Sauf que je sais tout de suite que 98, b3 et 92 ne sont pas des lettres. Je vais vous expliquer pourquoi dans une minute.)

Alors, quelle est la lettre 68?

68 est la 4ème lettre de l'alphabet en majuscules, non?
65 = A, B = 66, 67 = C, 68 = D.

Sinon, si vous n'êtes pas peur d'un peu d'arithmétique hexagonale facile, vous pouvez sauter l'étape 3, et juste aller directement d'hexagone en ASCII, en se rappelant, par exemple,

(En faisant cela, il est utile de se rappeler que « m » (ou « M ») est la 13 lettre de l'alphabet. Vous pouvez compter vers le haut ou vers le bas de 13 pour trouver une lettre qui est plus proche du milieu que de l'une des extrémités. )

J'ai vu cela sur une chemise une fois, et a pu le lire dans ma tête:

Je l'ai fait comme ceci:

La chemise a dit « papa », que je pensais était un peu cool, car il a été acheté par une femme enceinte. Son mari doit être un geek comme moi.

Comment ai-je savais tout de suite que 92, b3, et 98 étaient pas des lettres?

Étant donné que le code ASCII pour un 'z' en minuscules est de 96 + 26 = 122, ce qui en hexadécimal est 7a. 7a est le plus grand nombre hexadécimal pour une lettre. Tout ce plus grand que 7a n'est pas une lettre.

Alors voilà comment vous pouvez le faire comme un être humain.

Comment les programmes informatiques font?

Pour chaque ensemble de 8 chiffres binaires, le convertir en un certain nombre, et le chercher dans une table ASCII.

(C'est une assez évidente et simple voie à suivre. Un programmeur typique pourrait probablement penser à 10 ou 15 autres moyens dans l'espace de quelques minutes. Les détails dépendent de l'environnement de langage informatique.)

(Voir ce que la fonction chr fait.) Vous pouvez généraliser cet algorithme et ont un nombre différent de bits par caractère et encodages différents, le point reste le même.

répondit le 26 juillet '11 à 07h20

Zoul
70.8k ● 30 ● 194 ● 291

Il y a 8 bits dans un octet. Un octet peut être un symbole. Un bit est activé ou désactivé.

répondit le 26 juillet '11 à 07h18

Pourquoi ne pas faire tout cela prendre 010010001001001 diviser en deux bits 8 lettre chacun (01001000, 01001001). Puis donner les pouvoirs

Le premier 8 ignorer les trois premiers, ils déterminent si elle est capitale ou non, le droit aller à gauche pouvoirs qui font de 2 (2 ^ 1, 2 ^ 2 2 ^ 3 ^ 2 4 2 ^ 5). Alors ajouter tous les vers le haut. il n'y a qu'un seul, et il = 8, et te huit lettres dans l'alphabet est h donc notre premier bit est la lettre h, essayer autre bit

Articles Liés