Beste svaret
Ja, det er det.
Den nedre delen av 8-bitersområdet er reservert for kontrollkoder. Spesielt kan 00000000 ikke tildeles et teksttegn, fordi du vil ha et blankt hullkort som betyr , vel … ingenting. I tillegg er det hyggelig å kunne fjerne en feil ved å slå en hel rad, slik at 11111111 blir tilordnet DELETE-kontrollkoden, og kombinert med det faktum at teksttegn må passe i 7 biter for bakoverkompatibilitet, betyr det den høye enden av området blir også reservert for kontrollkoder.
Alfabetiske tegn må altså gå et sted i midten. Det ville være praktisk hvis du kunne konvertere mellom store og små bokstaver ved å snu en enkelt bit, noe som betyr at store og små bokstaver må skilles med et spenn på 32 (den minste effekten på to større enn 26). Det er også praktisk hvis bokstaver i en sak er sammenhengende, med skilletegn gruppert i endene, i de 6 kodepunktene du har igjen i hvert område på 32 tegn, og hvis sekvensen av kodepunkter for alfabetiske tegn samsvarer med deres tradisjonelle alfabetiske rekkefølge. Det ville være enda mer praktisk hvis du kunne konvertere et alfabetisk tegn til dets numeriske alfabetiske posisjon med en enkel bitmaske.
Alt dette begrenser alvorlig mulighetene for hvor du kan starte de alfabetiske tegnene. Ut av det begrensede spekteret av muligheter ble 65 eller 0100001 valgt for A, og 97, eller 01100001, ble valgt for a (i stedet for å si omvendt) av historiske grunner, for å opprettholde bakover kompatibilitet med gamle 5-biters kun-caps-tekstsystemer, der A faktisk er tildelt kodepunkt 1 (00001), som tillater konvertering mellom kodinger ved enkelt å legge til eller avkorte et prefiks.
Svar
Hva «binært alfabet»? Mener du ASCII? For hvis du gjør det, er ikke «a» lik 0100 0001. En stor bokstav «A» tilsvarer 0100 0001. ASCII-tegnet for «a» er 0110 0001. Mens du ville skrive «a» i EBCDIC, for eksempel, da ville det være 1000 0001, og A ville være 1100 0001.
De første 32 tegnene i ASCII-tabellen er ikke-utskrift, kontrolltegn som opprinnelig ble brukt til å kontrollere maskinvaren – for eksempel 0000 0111 kalles BEL, fordi det pleide å jobbe klokken på de gamle elektromekaniske teletypemaskinene som ASCII opprinnelig ble oppfunnet for. Utskrevne tegn startet bare med ASCII desimal 33, med tegnsettingstegn først (!) Og deretter sifre, deretter store bokstaver, deretter små bokstaver, og slutter med DEL-tasten ved ASCII 127, den øverste enden av de 7 bitene som ble brukt på den tid.
Så nei, noen valgte ikke «tilfeldig en streng med tall», det var en standard som ble utarbeidet av American Standards Association (nå ANSI) i 1960, basert på eksisterende telegrafkoder. Denne standarden har fortsatt blitt oppgradert og utvidet, men de første 128 tegnene og kontrollene har aldri blitt endret.