La tabella dei codici ASCII riportata nella lezione precedente è incompleta, come è facile arguire dal fatto che la sua numerazione inizia da 32. Ci sono infatti altri 32 (+1) codici ASCII (da 0 a 31 + 127), i quali però corrispondono a caratteri non stampabili (o di controllo). La tabella seguente li riporta:
DEC | HEX | BIN | Symbol | Description |
0 | 00 | 00000000 | NUL | Null char |
1 | 01 | 00000001 | SOH | Start of Heading |
2 | 02 | 00000010 | STX | Start of Text |
3 | 03 | 00000011 | ETX | End of Text |
4 | 04 | 00000100 | EOT | End of Transmission |
5 | 05 | 00000101 | ENQ | Enquiry |
6 | 06 | 00000110 | ACK | Acknowledgment |
7 | 07 | 00000111 | BEL | Bell |
8 | 08 | 00001000 | BS | Back Space |
9 | 09 | 00001001 | HT | Horizontal Tab |
10 | 0A | 00001010 | LF | Line Feed |
11 | 0B | 00001011 | VT | Vertical Tab |
12 | 0C | 00001100 | FF | Form Feed |
13 | 0D | 00001101 | CR | Carriage Return |
14 | 0E | 00001110 | SO | Shift Out / X-On |
15 | 0F | 00001111 | SI | Shift In / X-Off |
16 | 10 | 00010000 | DLE | Data Line Escape |
17 | 11 | 00010001 | DC1 | Device Control 1 (oft. XON) |
18 | 12 | 00010010 | DC2 | Device Control 2 |
19 | 13 | 00010011 | DC3 | Device Control 3 (oft. XOFF) |
20 | 14 | 00010100 | DC4 | Device Control 4 |
21 | 15 | 00010101 | NAK | Negative Acknowledgement |
22 | 16 | 00010110 | SYN | Synchronous Idle |
23 | 17 | 00010111 | ETB | End of Transmit Block |
24 | 18 | 00011000 | CAN | Cancel |
25 | 19 | 00011001 | EM | End of Medium |
26 | 1A | 00011010 | SUB | Substitute |
27 | 1B | 00011011 | ESC | Escape |
28 | 1C | 00011100 | FS | File Separator |
29 | 1D | 00011101 | GS | Group Separator |
30 | 1E | 00011110 | RS | Record Separator |
31 | 1F | 00011111 | US | Unit Separator |
127 | 7F | 01111111 | DEL | Delete |
Si osservi che il carattere di controllo Delete non ha un codice contiguo a quello degli altri caratteri di controllo, ma occupa l'ultima posizione della tabella (127).
I caratteri non stampabili, come suggerisce il nome, non producono una stampa, ma piuttosto controllano il funzionamento del dispositivo di stampa o di trasmissione.
Un semplice esempio di funzionamento di questi caratteri è rappresentato dal Form Feed (codice 12). Questo carattere in una stampante provoca l'espulsione del foglio di carta corrente e il caricamento di un nuovo foglio: in pratica introduce un'interruzione di pagina (page break).
Occorre notare che molti di questi caratteri erano usati un tempo per controllare dispositivi di stampa che ormai sono obsoleti (come le telescriventi); altri ancora non vengono usati nella stampa ma per controllare la trasmissione di testi (un esempio è il carattere di End Of Transmission).
Per complicare la situazione, molti caratteri inizialmente pensati per un certo scopo (e per un certo dispositivo), sono stati poi riutilizzati per scopi differenti per altri dispositivi e spesso l'uso dei singoli caratteri di controllo differisce da un sistema operativo all'altro.
Un caso curioso e interessante è quello del carattere NUL (codice ASCII 0). Come suggerisce il nome, inizialmente questo carattere serviva... per non fare assolutamente nulla! Nelle vecchie telescriventi, quando venivano collegate a un dispositivo più veloce (esempio un computer), c'era un problema quando il dispositivo di stampa doveva andare a capo al termine di una riga. Siccome la telescrivente era più lenta del computer, per darle il tempo di riposizionare la carta e la testina di stampa, alla fine di ogni riga veniva inserita una sequenza di caratteri NUL al solo scopo di introdurre un ritardo.
Attualmente il carattere NUL viene usato dal alcuni linguaggi di programmazione, come il C e i linguaggi da esso derivati, per indicare la fine di una stringa di caratteri.
Sito realizzato in base al template offerto da
http://www.graphixmania.it