Dare un senso alla tavola ASCII

Vi siete mai chiesti perché i caratteri ASCII siano stati ordinati in quest’ordine? Il motivo risulta piuttosto ovvio se li ordiniamo in 4 colonne di 32 caratteri. I primi due dei 7 bit identificativi di ogni carattere saranno dati dalla colonna, gli altri 5 dalla riga di appartenenza.

00 01 10 11
00000 NUL Spc @ `
00001 SOH ! A a
00010 STX B b
00011 ETX # C c
00100 EOT $ D d
00101 ENQ % E e
00110 ACK & F f
00111 BEL G g
01000 BS ( H h
01001 TAB ) I i
01010 LF * J j
01011 VT + K k
01100 FF , L l
01101 CR M m
01110 SO . N n
01111 SI / O o
10000 DLE 0 P p
10001 DC1 1 Q q
10010 DC2 2 R r
10011 DC3 3 S s
10100 DC4 4 T t
10101 NAK 5 U u
10110 SYN 6 V v
10111 ETB 7 W w
11000 CAN 8 X x
11001 EM 9 Y y
11010 SUB : Z z
11011 ESC ; [ {
11100 FS < \ |
11101 GS = ] }
11110 RS > ^ ~
11111 US ? _ DEL

Questa tabella spiega, ad esempio, come mai CTRL+[ rappresenti ESC.

  • 10 11011 -> [
  • 00 11011 -> ESC

Premendo CTRL settiamo i primi due bit a zero, ottenendo ESC a partire da [.

E  perché le lettere maiuscole sono prima di quelle minuscole e non intervallate ad esse? Semplicemente perché le lettere minuscole non erano ritenute strettamente necessarie, rendendo così possibile lavorare semplicemente con le prime tre colonne della codifica. Il carattere “@”, allora inutilizzato in Europa, si pensava sarebbe stata sostituito in Francia dalla À e fu per questo messo prima delle lettere, insieme a ” ` “. Inoltre, per passare da lettere maiuscole a minuscole, è sufficiente cambiare l’ultimo bit del carattere.

Un’ultima curiosità: i numeri sono dati da 011 + il numero scritto in binario con 4 cifre. Quindi:

  • 0 -> 011 + 0000
  • 5 -> 011 + 0101
  • 9 -> 011 + 1001

(riflessioni prese da questo commento di Hacker News)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s