Codificación de caracteres ASCII
Atrás
El código ASCII
(acrónimo inglés de American Standard Code for Information Interchange
- Código Estadounidense Estándar para el Intercambio de Información),
es un código de caracteres de 7 bits basado en el alfabeto latino.
Incluye dos bloques:
- Caracteres de control
- Caracteres imprimibles
Caracteres de control
Los caracteres de control de la codificación ASCII se introdujeron
sobre todo para la transmisión de datos, es decir, para las
telecomunicaciones.
Para poder expresarlos en C (muchos de ellos no pueden mostrarse o imprimirse)
podemos utilizar su código en octal o hexadecimal, al igual que para cualquier carácter.
Para algunos de ellos hay definida una secuencia de caracteres que normalmente
comienzan por \ (barra invertida o antibarra).
Así, si queremos expresar un salto de línea
(newline), que es el carácter 10 decimal,
128 (octal) y A16 (hexadecimal)
podemos expresarlo:
- en octal: '\12'
- en hexadecimal: '\xA'
- mediante la cadena propia de C: '\n'
Una vez nos acostumbramos suele ser más sencillo utilizar la secuencia '\n'
que su código numérico ya que utiliza mnemotécnicos.
|
Dec | Hex | C | Car | Descripción | Description |
0 | 0 | \0 | NUL | carácter nulo | null |
1 | 1 | \1 | SOH | comienzo de cabecera | start of heading |
2 | 2 | \2 | STX | comienzo de texto | start of text |
3 | 3 | | ETX | fin de texto | end of text |
4 | 4 | | EOT | fin de transmisión | end of transmission |
5 | 5 | | ENQ | petición | enquiry |
6 | 6 | | ACK | reconocimiento | acknowledge |
7 | 7 | \a | BEL | timbre | bell |
8 | 8 | | BS | retroceso | backspace |
9 | 9 | \t | TAB | tabulador horizontal | horizontal tab |
10 | a | \n | LF/NL | salto de línea | line feed/new line |
11 | b | \v | VF | tabulador vertical | vertical tab |
12 | c | \f | FF/NP | salto de página | form feed/new page |
13 | d | \r | CR | retorno de carro | carriage return |
14 | e | | SO | cambiar conjunto de caracteres | shift out |
15 | f | | SI | volver al conjunto de caracteres | shift in |
16 | 10 | | DLE | escape de enlace de datos | data link escape |
17 | 11 | | DC1 | control de dispositivo 1 | device control 1 |
18 | 12 | | DC2 | control de dispositivo 2 | device control 2 |
19 | 13 | | DC3 | control de dispositivo 3 | device control 3 |
20 | 14 | | DC4 | control de dispositivo 4 | device control 4 |
21 | 15 | | NAK | reconocimiento negativo | negative acknowledge |
22 | 16 | | SYN | espera síncrona | synchronous idle |
23 | 17 | | ETB | fin de bloque de transmisión | end of transmission block |
24 | 18 | | CAN | cancelar | cancel |
25 | 19 | | EM | fin de medio | end of medium |
26 | 1a | | SUB | substitución | substitute |
27 | 1b | | ESC | escape | escape |
28 | 1c | | FS | separador de fichero | file separator |
29 | 1d | | GS | separador de grupo | group separator |
30 | 1e | | RS | separador de registro | record separator |
31 | 1f | | US | separador de unidad | unit separator |
127 | 7f | | DEL | suprimir | delete |
|
Tabla 1. Caracteres ASCII de control
|
|
Caracteres imprimibles
En general vamos a considerar caracteres de la codificación ASCII a aquéllos que pueden mostrarse
o imprimirse, aunque el espacio (carácter 32) suponga una excepción.
Rasgos estructurales:
- Los dígitos del 0 al 9 se representan con sus valores prefijados con el valor 0x30 (hexadecimal).
Convertir del código BCD (Binary Coded Decimal, Decimal Codificado en Binario) al código ASCII
es cuestión de sumar 0x30 al valor bcd .
- Las cadenas de bits de las letras minúsculas y mayúsculas sólo difieren en un bit,
el 100000 binario ó 0x20 hexadecimal,
simplificando de esta forma la conversión de uno a otro grupo.
Obsérvese que en C podemos obtener esta diferencia mediante la expresión:
'a' - 'A'
.
|
Dec | Hex | Car |
Dec | Hex | Car |
Dec | Hex | Car |
Dec | Hex | Car |
Dec | Hex | Car |
Dec | Hex | Car |
32 | 20 | espacio |
48 | 30 | 0 |
64 | 40 | @ |
80 | 50 | P |
96 | 60 | ` |
112 | 70 | p |
33 | 21 | ! |
49 | 31 | 1 |
65 | 41 | A |
81 | 51 | Q |
97 | 61 | a |
113 | 71 | q |
34 | 22 | " |
50 | 32 | 2 |
66 | 42 | B |
82 | 52 | R |
98 | 62 | b |
114 | 72 | r |
35 | 23 | # |
51 | 33 | 3 |
67 | 43 | C |
83 | 53 | S |
99 | 63 | c |
115 | 73 | s |
36 | 24 | $ |
52 | 34 | 4 |
68 | 44 | D |
84 | 54 | T |
100 | 64 | d |
116 | 74 | t |
37 | 25 | % |
53 | 35 | 5 |
69 | 45 | E |
85 | 55 | U |
101 | 65 | e |
117 | 75 | u |
38 | 26 | & |
54 | 36 | 6 |
70 | 46 | F |
86 | 56 | V |
102 | 66 | f |
118 | 76 | v |
39 | 27 | ' |
55 | 37 | 7 |
71 | 47 | G |
87 | 57 | W |
103 | 67 | g |
119 | 77 | w |
40 | 28 | ( |
56 | 38 | 8 |
72 | 48 | H |
88 | 58 | X |
104 | 68 | h |
120 | 78 | x |
41 | 29 | ) |
57 | 39 | 9 |
73 | 49 | I |
89 | 59 | Y |
105 | 69 | i |
121 | 79 | y |
42 | 2a | * |
58 | 3a | : |
74 | 4a | J |
90 | 5a | Z |
106 | 6a | j |
122 | 7a | z |
43 | 2b | + |
59 | 3b | ; |
75 | 4b | K |
91 | 5b | [ |
107 | 6b | k |
123 | 7b | { |
44 | 2c | , |
60 | 3c | < |
76 | 4c | L |
92 | 5c | \ |
108 | 6c | l |
124 | 7c | | |
45 | 2d | - |
61 | 3d | = |
77 | 4d | M |
93 | 5d | ] |
109 | 6d | m |
125 | 7d | } |
46 | 2e | . |
62 | 3e | > |
78 | 4e | N |
94 | 5e | ^ |
110 | 6e | n |
126 | 7e | ~ |
47 | 2f | / |
63 | 3f | ? |
79 | 4f | O |
95 | 5f | _ |
111 | 6f | o |
| | |
|
Tabla 2. Caracteres ASCII imprimibles
|
|
Atrás