Beste antwoord
Ja, dat is er.
Het onderste deel van het 8-bits bereik is gereserveerd voor besturingscodes. In het bijzonder kan 00000000 niet worden toegewezen aan een tekstueel teken, omdat u een blanco ponskaart wilt betekenen , nou… niets. Bovendien is het fijn om een fout uit de weg te ruimen door een hele rij in te drukken, dus 11111111 wordt toegewezen aan de DELETE-besturingscode, en, gecombineerd met het feit dat teksttekens in 7 bits moeten passen voor achterwaartse compatibiliteit, betekent dat de bovenkant van de reeks wordt ook gereserveerd voor controlecodes.
Alfabetische tekens moeten dus ergens in het midden komen. Het zou handig zijn als u tussen hoofdletters en kleine letters zou kunnen converteren door een enkele bit om te draaien, wat betekent dat hoofdletters en kleine letters moeten worden gescheiden door een reeks van 32 (de kleinste macht van twee groter dan 26). Het is ook handig als letters binnen een hoofdletter aaneengesloten zijn, met leestekens gegroepeerd aan de uiteinden, in de 6 codepunten die u nog over heeft in elk bereik van 32 tekens, en als de reeks codepunten voor alfabetische tekens overeenkomt met hun traditionele alfabetische volgorde. Het zou zelfs nog handiger zijn als je een alfabetisch teken zou kunnen omzetten naar zijn numerieke alfabetische positie met een eenvoudig bitmasker.
Dit alles beperkt de mogelijkheden voor het starten van de alfabetische tekens ernstig. Uit dat beperkte scala aan mogelijkheden werd 65, of 0100001, gekozen voor A, en 97, of 01100001, werd gekozen voor a (in plaats van bijvoorbeeld andersom) om historische redenen, om achteruit te blijven compatibiliteit met oude 5-bit hoofdletters-only tekstsystemen, waarin A in feite codepunt 1 (00001) is toegewezen, waardoor conversie tussen coderingen mogelijk is door eenvoudige toevoeging of afkapping van een voorvoegsel.
Antwoord
Welk “binair alfabet”? Bedoel je ASCII? Want als je dat doet, dan is a niet gelijk aan 0100 0001. Een hoofdletter A is gelijk aan 0100 0001. Het ASCII-teken voor a is 0110 0001. Als je a in EBCDIC wilt schrijven, bijvoorbeeld, dan zou dat 1000 0001 zijn, en A zou 1100 0001 zijn.
De eerste 32 tekens in de ASCII-tabel zijn niet-afdrukbare, controletekens die oorspronkelijk werden gebruikt om de hardware te besturen, bijvoorbeeld 0000 0111 heet BEL, omdat die vroeger de bel deed klinken op de oude elektromechanische teletype-machines waarvoor ASCII oorspronkelijk werd uitgevonden. Afgedrukte tekens begonnen pas op ASCII-decimaal 33, met de leestekens eerst (!), Dan cijfers, dan hoofdletters, dan kleine letters, eindigend met de DEL-toets op ASCII 127, het allerhoogste einde van de 7 bits die toen werden gebruikt tijd.
Dus nee, iemand koos niet “willekeurig een reeks getallen”, het was een standaard die in 1960 door de American Standards Association (nu ANSI) werd uitgewerkt, op basis van reeds bestaande telegraafcodes. Die standaard is voortdurend verbeterd en uitgebreid, maar de eerste 128 tekens en bedieningselementen zijn nooit gewijzigd.