PROGRAMMIAMO
File - Codice ASCII: caratteri di controllo
Caratteri non stampabili (di controllo)

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
00000000000NULNull char
10100000001SOHStart of Heading
20200000010STXStart of Text
30300000011ETXEnd of Text
40400000100EOTEnd of Transmission
50500000101ENQEnquiry
60600000110ACKAcknowledgment
70700000111BELBell
80800001000 BSBack Space
90900001001 HTHorizontal Tab
100A00001010 LFLine Feed
110B00001011 VTVertical Tab
120C00001100 FFForm Feed
130D00001101 CRCarriage Return
140E00001110 SOShift Out / X-On
150F00001111 SIShift In / X-Off
161000010000DLEData Line Escape
171100010001DC1Device Control 1 (oft. XON)
181200010010DC2Device Control 2
191300010011DC3Device Control 3 (oft. XOFF)
201400010100DC4Device Control 4
211500010101NAKNegative Acknowledgement
221600010110SYNSynchronous Idle
231700010111ETBEnd of Transmit Block
241800011000CANCancel
251900011001 EMEnd of Medium
261A00011010SUBSubstitute
271B00011011ESCEscape
281C00011100 FSFile Separator
291D00011101 GSGroup Separator
301E00011110 RSRecord Separator
311F00011111 USUnit Separator
1277F 01111111 DELDelete

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).

A cosa servono i caratteri non stampabili?

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.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it