Cel mai bun răspuns
Da, există.
Partea inferioară a gamei de 8 biți este rezervată codurilor de control. În special, 00000000 nu poate fi atribuit unui caracter textual, deoarece doriți ca un card perforat gol să înseamnă , ei bine … nimic. În plus, este plăcut să poți șterge o greșeală prin lovirea unui rând întreg, astfel încât 11111111 este atribuit codului de control ȘTERGERE și, combinat cu faptul că caracterele text trebuie să se încadreze în 7 biți pentru compatibilitatea cu versiunea anterioară, asta înseamnă capătul superior al gamei este rezervat și codurilor de control.
Deci, caracterele alfabetice trebuie să meargă undeva la mijloc. Ar fi convenabil dacă ați putea face conversia între majuscule și minuscule prin răsucirea unui singur bit, ceea ce înseamnă că caracterele majuscule și minuscule trebuie să fie separate de un interval de 32 (cea mai mică putere dintre două mai mari decât 26). Este, de asemenea, convenabil dacă literele dintr-un caz sunt contigue, cu semne de punctuație grupate la capete, în cele 6 puncte de cod pe care le-ați lăsat în fiecare interval de 32 de caractere și dacă secvența de puncte de cod pentru caracterele alfabetice se potrivește cu ordinea lor alfabetică tradițională. Ar fi și mai convenabil dacă ați putea converti un caracter alfabetic în poziția sa alfabetică numerică cu o mască de biți simplă.
Toate acestea constrâng grav posibilitățile de unde puteți începe caracterele alfabetice. Din această gamă limitată de posibilități, 65, sau 0100001, a fost ales pentru „A”, iar 97, sau 01100001, a fost ales pentru „a” (mai degrabă decât, să spunem, invers) din motive istorice, pentru a menține înapoi compatibilitate cu sistemele de text vechi cu majuscule de 5 biți, în care „A” este de fapt atribuit punctului de cod 1 (00001), permițând conversia între codificări prin simpla adăugare sau trunchiere a unui prefix.
Răspuns
Ce „alfabet binar”? Te referi la ASCII? Pentru că dacă faceți acest lucru, atunci „a” nu este egal cu 0100 0001. Un „A” cu majuscule este echivalent cu 0100 0001. Caracterul ASCII pentru „a” este 0110 0001. În timp ce dacă ați dori să scrieți „a” în EBCDIC, pentru de exemplu, atunci acesta ar fi 1000 0001, iar A ar fi 1100 0001.
Primele 32 de caractere din tabelul ASCII sunt caractere neimprimabile, de control care au fost utilizate inițial pentru a controla hardware – de exemplu, 0000 0111 se numește BEL, pentru că acea clopot a fost folosit pe vechile aparate de teletip electromecanice pentru care ASCII a fost inventat inițial. Caracterele tipărite au început doar de la ASCII zecimal 33, cu caracterele de punctuație mai întâi (!) Apoi cifre, apoi majuscule, apoi litere mici, care se termină cu tasta DEL la ASCII 127, extremitatea superioară a celor 7 biți care au fost folosiți la acel moment timp.
Deci nu, cineva nu a „ales aleatoriu un șir de numere”, a fost un standard elaborat de American Standards Association (acum ANSI) în 1960, bazat pe coduri telegrafice preexistente. Acest standard a continuat să fie actualizat și extins, dar primele 128 de caractere și controale nu au fost niciodată modificate.