Migliore risposta h2 >
Sì, cè.
La parte inferiore dellintervallo di 8 bit è riservata ai codici di controllo. In particolare, 00000000 non può essere assegnato a un carattere testuale, perché vuoi che una scheda perforata vuota significhi , beh … niente. Inoltre, è bello poter eliminare un errore perforando unintera riga, quindi 11111111 viene assegnato al codice di controllo DELETE e, combinato con il fatto che i caratteri di testo devono adattarsi a 7 bit per compatibilità con le versioni precedenti, ciò significa la fascia alta dellintervallo viene riservata anche ai codici di controllo.
Quindi, i caratteri alfabetici devono andare da qualche parte nel mezzo. Sarebbe conveniente se potessi convertire tra maiuscole e minuscole capovolgendo un singolo bit, il che significa che i caratteri maiuscoli e minuscoli devono essere separati da un intervallo di 32 (la potenza più piccola di due più grandi di 26). È anche utile se le lettere allinterno di una maiuscola sono contigue, con segni di punteggiatura raggruppati alle estremità, nei 6 punti di codice rimasti in ciascun intervallo di 32 caratteri e se la sequenza di punti di codice per i caratteri alfabetici corrisponde al loro tradizionale ordine alfabetico. Sarebbe ancora più conveniente se potessi convertire un carattere alfabetico nella sua posizione alfabetica numerica con una semplice maschera di bit.
Tutto ciò limita fortemente le possibilità di dove puoi iniziare i caratteri alfabetici. Da quella gamma limitata di possibilità, 65, o 0100001, è stato scelto per A, e 97, o 01100001, è stato scelto per a (piuttosto che, diciamo, il contrario) per ragioni storiche, per mantenere al contrario compatibilità con i vecchi sistemi di testo solo maiuscole a 5 bit, in cui ad A viene infatti assegnato il punto di codice 1 (00001), consentendo la conversione tra codifiche mediante semplice aggiunta o troncamento di un prefisso.
Risposta
Che cosè l “alfabeto binario”? Intendi ASCII? Perché se lo fai, allora “a” non è uguale a 0100 0001. Una “A” maiuscola equivale a 0100 0001. Il carattere ASCII per “a” è 0110 0001. Mentre se volevi scrivere “a” in EBCDIC, per esempio, sarebbe 1000 0001 e A sarebbe 1100 0001.
I primi 32 caratteri nella tabella ASCII sono caratteri di controllo non stampabili originariamente utilizzati per controllare lhardware, ad esempio, 0000 0111 si chiama BEL, perché questo faceva funzionare la campana sulle vecchie telescriventi elettromeccaniche per le quali ASCII fu originariamente inventato. I caratteri stampati iniziarono solo con ASCII decimale 33, con i caratteri di punteggiatura prima (!) Poi cifre, poi lettere maiuscole, poi lettere minuscole, terminando con il tasto CANC in ASCII 127, lestremità superiore dei 7 bit che sono stati usati in quel momento tempo.
Quindi no, qualcuno non ha “scelto a caso una stringa di numeri”, era uno standard elaborato dallAmerican Standards Association (ora ANSI) nel 1960, basato su codici telegrafici preesistenti. Tale standard ha continuato ad essere aggiornato ed espanso, ma i primi 128 caratteri e controlli non sono mai stati modificati.