Decimali, Binari & C
L' ASCII
|
L' ASCII
ASCII è acronimo di American Standard Code for Information
Interchange. E'
una convenzione per codificare i caratteri comunemente utilizzati per stampa e
presentazione a video e poterli scambiare tra computer e periferiche di diversi
produttori o con diversi sistemi operativi.
ASCII, nella sua forma originale, codifica 128 caratteri e segni speciali,
quindi utilizza numeri composti da 7 bit binari. Successivamente è stato esteso
a 256 caratteri, occupando 8 bit binari, ovvero due cifre Hex.
Sono state sviluppate, poi, numerose varianti non standard, ad esempio i
caratteri speciali per la grafica sulle schede del PC IBM originale (CGA).
Alcune carattersistiche interessanti dell' ASCII sono le seguenti :
- le cifre indiane-arabe, da 0 a 9, sono codificate in un byte il cui
nibble alto vale 3
- Le lettere maiuscole dell' alfabeto latino sono codificate con byte hex
con l' MSB pari a 4
- Le lettere minuscole hanno l' MSB che vale 6
- I caratteri codificati da 00h a 1Fh sono caratteri di controllo per la
stampa e la visualizzazione, come LF (line Feed), CR (Carriage Return), ecc
Se osserviamo una tabella dei caratteri ASCII, vediamo che i numeri sono rappresentati
ciascuno da un byte che contiene nel nibble alto il valore 3 e
nel nibble basso il numero.
Ad esempio, un byte che contenga 39 e che sia da usare come ASCII, produce la
scrittura sul terminale del numero 9; se il contenuto è 34, il numero
presentato è il 4.
Così, utilizzando il BCD, è molto semplice passare all' ASCII : basta
sostituire il nibble alto con 3.
Allora un passaggio da BCD compresso ad ASCII sarà costituito dalle seguenti
operazioni :
- prendo il numero BCD compresso
- scambio il nibble alto con il nibble basso
- sostituisco il nibble alto con 3
- mando il byte in stampa
- riprendo il numero BCD compresso
- sostituisco il nibble alto con 3
- mando il byte in stampa
Se entro in questa procedura con il BCD = 25, avrò sul terminale la stampa
delle cifre 2 e 5. Molto comodo.
Tabella
ASCII - 000-128 |
dec hex char dec hex char dec hex char dec hex char
0 00 ^@ null 32 20 space 64 40 @ 96 60 `
1 01 ^A soh 33 21 ! 65 41 A 97 61 a
2 02 ^B stx 34 22 " 66 42 B 98 62 b
3 03 ^C etx 35 23 # 67 43 C 99 63 c
4 04 ^D eot 36 24 $ 68 44 D 100 64 d
5 05 ^E enq 37 25 % 69 45 E 101 65 e
6 06 ^F ack 38 26 & 70 46 F 102 66 f
7 07 ^G bel 39 27 ' 71 47 G 103 67 g
8 08 ^H bs 40 28 ( 72 48 H 104 68 h
9 09 ^I ht 41 29 ) 73 49 I 105 69 i
10 0A ^J lf 42 2A * 74 4A J 106 6A j
11 0B ^K vt 43 2B + 75 4B K 107 6B k
12 0C ^L ff 44 2C , 76 4C L 108 6C l
13 0D ^M cr 45 2D - 77 4D M 109 6D m
14 0E ^N so 46 2E . 78 4E N 110 6E n
15 0F ^O si 47 2F / 79 4F O 111 6F o
16 10 ^P dle 48 30 0 80 50 P 112 70 p
17 11 ^Q dc1 49 31 1 81 51 Q 113 71 q
18 12 ^R dc2 50 32 2 82 52 R 114 72 r
19 13 ^S dc3 51 33 3 83 53 S 115 73 s
20 14 ^T dc4 52 34 4 84 54 T 116 74 t
21 15 ^U nak 53 35 5 85 55 U 117 75 u
22 16 ^V syn 54 36 6 86 56 V 118 76 v
23 17 ^W etb 55 37 7 87 57 W 119 77 w
24 18 ^X can 56 38 8 88 58 X 120 78 x
25 19 ^Y em 57 39 9 89 59 Y 121 79 y
26 1A ^Z sub 58 3A : 90 5A Z 122 7A z
27 1B ^[ esc 59 3B ; 91 5B [ 123 7B {
28 1C ^\ fs 60 3C < 92 5C \ 124 7C |
29 1D ^] gs 61 3D = 93 5D ] 125 7D }
30 1E ^^ rs 62 3E > 94 5E ^ 126 7E ~
31 1F ^_ us 63 3F ? 95 5F _ 127 7F del
|
|