Y a-t-il une logique expliquant pourquoi dans lalphabet binaire, a = 01000001 et la même chose avec les autres lettres, ou quelquun a-t-il simplement choisi au hasard cette chaîne de nombres pour représenter a?


Meilleure réponse

Oui.

La partie inférieure de la plage de 8 bits est réservée aux codes de contrôle. En particulier, 00000000 ne peut pas être attribué à un caractère textuel, car vous voulez une carte perforée vierge pour signifie , enfin… rien. De plus, il est agréable de pouvoir effacer une erreur en perforant une ligne entière, de sorte que 11111111 est affecté au code de contrôle DELETE, et, combiné au fait que les caractères de texte doivent tenir sur 7 bits pour une compatibilité ascendante, cela signifie le haut de gamme est également réservé aux codes de contrôle.

Ainsi, les caractères alphabétiques doivent aller quelque part au milieu. Ce serait pratique si vous pouviez convertir entre les majuscules et les minuscules en retournant un seul bit, ce qui signifie que les caractères majuscules et minuscules doivent être séparés par une plage de 32 (la plus petite puissance de deux supérieure à 26). Il est également pratique si les lettres dune casse sont contiguës, avec des signes de ponctuation groupés aux extrémités, dans les 6 points de code quil vous reste dans chaque plage de 32 caractères, et si la séquence de points de code pour les caractères alphabétiques correspond à leur ordre alphabétique traditionnel. Ce serait encore plus pratique si vous pouviez convertir un caractère alphabétique en sa position alphabétique numérique avec un simple masque de bits.

Tout cela limite considérablement les possibilités de commencer les caractères alphabétiques. Dans cette gamme limitée de possibilités, 65 ou 0100001 ont été choisis pour «A», et 97, ou 01100001, ont été choisis pour «a» (plutôt que, disons, linverse) pour des raisons historiques, pour maintenir à lenvers compatibilité avec les anciens systèmes de texte en majuscules 5 bits, dans lesquels A est en fait affecté au point de code 1 (00001), permettant la conversion entre les encodages par simple addition ou troncature dun préfixe.

Réponse

Quel «alphabet binaire»? Voulez-vous dire ASCII? Parce que si vous le faites, alors «a» ne vaut pas 0100 0001. Un «A» majuscule équivaut à 0100 0001. Le caractère ASCII pour «a» est 0110 0001. Alors que si vous vouliez écrire «a» en EBCDIC, pour exemple, alors ce serait 1000 0001 et A serait 1100 0001.

Les 32 premiers caractères de la table ASCII sont des caractères de contrôle non imprimables qui étaient à lorigine utilisés pour contrôler le matériel – par exemple, 0000 0111 sappelle BEL, parce que cela faisait fonctionner la cloche sur les vieux téléscripteurs électromécaniques pour lesquels lASCII a été inventé à lorigine. Les caractères imprimés ne commençaient quà la décimale ASCII 33, avec les caractères de ponctuation en premier (!) Puis les chiffres, puis les lettres majuscules, puis les lettres minuscules, se terminant par la touche DEL à ASCII 127, la toute première extrémité des 7 bits qui ont été utilisés à cela

Donc non, quelquun na pas «choisi au hasard une chaîne de nombres», cétait une norme élaborée par lAmerican Standards Association (maintenant ANSI) en 1960, sur la base de codes télégraphiques préexistants. Cette norme a continué dêtre mise à jour et étendue, mais les 128 premiers caractères et commandes nont jamais été modifiés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *