Introduzione al Codice ASCII
- Il codice ASCII è un codice binario standard che rappresenta caratteri alfanumerici e simboli utilizzando sette bit.
- È ampiamente utilizzato nei computer e nelle comunicazioni digitali.
- Il codice ASCII include 128 caratteri, tra cui lettere, numeri e simboli speciali.
- Ogni carattere è rappresentato da una combinazione unica di sette bit, che consente di codificare informazioni in modo efficiente.
- Il codice ASCII è compatibile con la maggior parte dei sistemi informatici e di comunicazione, rendendolo uno standard universale per la rappresentazione di testo.
- Il codice ASCII può essere esteso per includere caratteri aggiuntivi, ma la versione standard utilizza solo sette bit.
- Il bit di parità può essere utilizzato per rilevare errori di trasmissione nei dati ASCII, con la possibilità di utilizzare parità pari o dispari.
Codice Alfanumerico ASCII
Molte applicazioni dei computer digitali richiedono la gestione non solo di numeri ma anche di altri caratteri o simboli, come le lettere dell'alfabeto.
Per esempio, si consideri un'azienda con migliaia di dipendenti. Per rappresentare i nomi e altre informazioni pertinenti, è necessario formulare un codice binario per le lettere dell'alfabeto. Inoltre, lo stesso codice binario deve rappresentare numeri e caratteri speciali (come $
). Un set di caratteri alfanumerici è un insieme di elementi che include le 10 cifre decimali, le 26 lettere dell'alfabeto e un numero di caratteri speciali. Tale insieme contiene tra 36 e 64 elementi se sono incluse solo lettere maiuscole, o tra 64 e 128 elementi se sono incluse sia lettere maiuscole che minuscole. Nel primo caso, abbiamo bisogno di un codice binario di sei bit, e nel secondo, abbiamo bisogno di un codice binario di sette bit.
Il codice binario standard per i caratteri alfanumerici è l'American Standard Code for Information Interchange (ASCII), che usa sette bit per codificare 128 caratteri, come mostrato nella tabella che segue. I sette bit del codice sono designati da A
, per esempio, è rappresentata in ASCII come 1000001 (colonna 100, riga 0001). Il codice ASCII contiene anche 94 caratteri grafici che possono essere stampati e 34 caratteri non stampabili usati per varie funzioni di controllo.
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
|
0000 |
NUL |
DLE |
SP |
0 |
@ |
P |
' |
p |
0001 |
SOH |
DC1 |
! |
1 |
A |
Q |
a |
q |
0010 |
STX |
DC2 |
" |
2 |
B |
R |
b |
r |
0011 |
ETX |
DC3 |
# |
3 |
C |
S |
c |
s |
0100 |
EOT |
DC4 |
\$ |
4 |
D |
T |
d |
t |
0101 |
ENQ |
NAK |
% |
5 |
E |
U |
e |
u |
0110 |
ACK |
SYN |
& |
6 |
F |
V |
f |
v |
0111 |
BEL |
ETB |
' |
7 |
G |
W |
g |
w |
1000 |
BS |
CAN |
( |
8 |
H |
X |
h |
x |
1001 |
HT |
EM |
) |
9 |
I |
Y |
i |
y |
1010 |
LF |
SUB |
* |
: |
J |
Z |
j |
z |
1011 |
VT |
ESC |
+ |
; |
K |
[ |
k |
{ |
1100 |
FF |
FS |
, |
6 |
L |
l |
||
1101 |
CR |
GS |
- |
= |
M |
] |
m |
} |
1110 |
SO |
RS |
7 |
N |
¿ |
n |
∼ |
|
1111 |
SI |
US |
/ |
? |
O |
- |
o |
DEL |
I caratteri grafici consistono delle 26 lettere maiuscole (da A
a Z
), delle 26 lettere minuscole (da a
a z
), dei 10 numeri (da 0
a 9
), e di 32 caratteri speciali stampabili, come %
, *
, e $
.
I 34 caratteri di controllo sono designati nella tabella ASCII con nomi abbreviati. Nella tabella che segue sono elencati con la loro descrizione:
Caratteri di Controllo | |
---|---|
NUL |
Null |
SOH |
Inizio intestazione |
STX |
Inizio testo |
ETX |
Fine testo |
EOT |
Fine trasmissione |
ENQ |
Richiesta |
ACK |
Riconoscimento |
BEL |
Campanello |
BS |
Backspace |
HT |
Tabulazione orizzontale |
LF |
Avanzamento riga |
VT |
Tabulazione verticale |
FF |
Avanzamento modulo |
CR |
Ritorno carrello |
SO |
Shift out |
SI |
Shift in |
SP |
Spazio |
DLE |
Escape di collegamento dati |
DC1 |
Controllo dispositivo 1 |
DC2 |
Controllo dispositivo 2 |
DC3 |
Controllo dispositivo 3 |
DC4 |
Controllo dispositivo 4 |
NAK |
Riconoscimento negativo |
SYN |
Inattivo sincrono |
ETB |
Fine blocco trasmissione |
CAN |
Annulla |
EM |
Fine del mezzo |
SUB |
Sostituto |
ESC |
Escape |
FS |
Separatore file |
GS |
Separatore gruppo |
RS |
Separatore record |
US |
Separatore unità |
DEL |
Cancella |
I caratteri di controllo sono usati per instradare i dati e organizzare il testo stampato in un formato prescritto. Ci sono tre tipi di caratteri di controllo: specificatori di formato, separatori di informazioni e caratteri di controllo comunicazione. Gli specificatori di formato sono caratteri che controllano il layout di stampa. Includono i controlli familiari del word processor e della macchina da scrivere come backspace (BS), tabulazione orizzontale (HT), e ritorno a capo (CR). I separatori di informazioni sono usati per separare i dati in divisioni come paragrafi e pagine. Includono caratteri come separatore record (RS) e separatore file (FS). I caratteri di controllo comunicazione sono utili durante la trasmissione di testo tra dispositivi remoti in modo che possa essere distinto da altri messaggi usando lo stesso canale di comunicazione prima e dopo di esso. Esempi di caratteri di controllo comunicazione sono STX (inizio testo) e ETX (fine testo), che sono usati per incorniciare un messaggio di testo trasmesso attraverso un canale di comunicazione.
ASCII è un codice a sette bit, ma la maggior parte dei computer manipola una quantità a otto bit come singola unità chiamata byte. Pertanto, i caratteri ASCII sono più spesso memorizzati uno per byte. Il bit extra è talvolta usato per altri scopi, a seconda dell'applicazione. Per esempio, alcune stampanti riconoscono caratteri ASCII a otto bit con il bit più significativo impostato a 0. Ulteriori 128 caratteri a otto bit con il bit più significativo impostato a 1 sono usati per altri simboli, come l'alfabeto greco o caratteri in corsivo.
Codice a Rilevazione di Errore
Per rilevare errori nella comunicazione e nell'elaborazione dei dati, talvolta viene aggiunto un ottavo bit al carattere ASCII per indicare la sua parità. Un bit di parità è un bit extra incluso con un messaggio per rendere il numero totale di 1 pari o dispari.
Consideriamo i seguenti due caratteri e quali bit sono stati aggiunti per la parità:
Valore originale | Con parità pari | Con parità dispari |
---|---|---|
ASCII A : 1000001 |
01000001 |
11000001 |
ASCII T : 1010100 |
11010100 |
01010100 |
In ogni caso, inseriamo un bit extra nella posizione più a sinistra del codice per produrre un numero pari di 1 nel carattere per la parità pari o un numero dispari di 1 nel carattere per la parità dispari. In generale, viene adottata l'una o l'altra parità, con la parità pari che è più comune.
Il bit di parità è utile nel rilevare errori durante la trasmissione di informazioni da una posizione a un'altra. Questa funzione è gestita generando un bit di parità pari all'estremità mittente per ogni carattere. I caratteri a otto bit che includono i bit di parità sono trasmessi alla loro destinazione. La parità di ogni carattere viene poi controllata all'estremità ricevente. Se la parità del carattere ricevuto non è pari, allora almeno un bit ha cambiato valore durante la trasmissione. Questo metodo rileva una, tre, o qualsiasi combinazione dispari di errori in ogni carattere che viene trasmesso. Una combinazione pari di errori, tuttavia, non viene rilevata, e potrebbero essere necessari codici di rilevazione errori aggiuntivi per gestire quella possibilità.
Quello che viene fatto dopo che un errore è rilevato dipende dalla particolare applicazione. Una possibilità è richiedere la ritrasmissione del messaggio assumendo che l'errore fosse casuale e non si verificherà di nuovo. Così, se il ricevente rileva un errore di parità, rimanda indietro il carattere di controllo ASCII NAK
(not acknowledge) consistente di otto bit con parità pari 10010101
. Se non viene rilevato nessun errore, il ricevente rimanda indietro un carattere di controllo ACK
(acknowledge), cioè 00000110
. L'estremità mittente risponderà a un NAK
trasmettendo di nuovo il messaggio fino a quando viene ricevuta la parità corretta. Se, dopo un numero di tentativi, la trasmissione è ancora in errore, può essere inviato un messaggio all'operatore per controllare malfunzionamenti nel percorso di trasmissione.
Concludiamo con un esempio di calcolo del bit di parità pari per un carattere ASCII. Consideriamo il carattere C
, che in binario è rappresentato come 01000011
. Per calcolare il bit di parità pari, contiamo il numero di 1 nel codice:
- Il codice
01000011
ha tre 1, quindi per ottenere una parità pari, il bit di parità deve essere 1. Pertanto, il carattereC
con parità pari diventa11000011
. - Se, invece, vogliamo ottenere una parità dispari, il bit di parità deve essere 0, quindi il carattere
C
con parità dispari diventa01000011
.