ASCII

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 19 de marzo de 2022; las comprobaciones requieren 19 ediciones .

ASCII ( código estándar inglés americano para el intercambio de información , [ ˈ æ s .  k i ] [ 1 ] ) es el nombre de una tabla ( codificación , conjunto), en la que los códigos numéricos están asociados con algunos códigos impresos y no comunes . -caracteres imprimibles. La mesa fue desarrollada y estandarizada en los EE . UU . en 1963.


La tabla ASCII define códigos para caracteres:

Historia

Inicialmente (1963), ASCII se desarrolló para codificar caracteres cuyos códigos caben en 7 bits (128 caracteres; 2 7 \u003d 128), y el bit más significativo No. 7 (numeración desde cero) se usó para controlar errores que ocurrieron durante la transmisión de datos . En la primera versión, solo se codificaban letras mayúsculas. Las bandas (grupos de 16 caracteres) números 6 y 7 (la numeración comienza desde 0) se reservaron para una mayor expansión. Se ha debatido si usar esta área para letras minúsculas o caracteres de control.

En 1965 se preparó una nueva edición de ASCII, que nunca llegó a publicarse. No se usó en ninguna parte excepto en las terminales IBM 2260/2848 . La siguiente especificación se publicó en 1967 y todos los caracteres que contiene no han cambiado de posición en la tabla desde entonces.

Con el tiempo, la codificación se amplió a 256 caracteres (2 8 = 256); los códigos de los primeros 128 caracteres no han cambiado. ASCII comenzó a percibirse como la mitad de la codificación de 8 bits, y el "ASCII extendido" se denominó ASCII con el octavo bit involucrado (por ejemplo, KOI-8 ).

Superposición de símbolos

Usando el carácter de retroceso (BS) (retroceso ) en la impresora , puede imprimir un carácter encima de otro. En ASCII, puede agregar signos diacríticos a las letras de la misma manera , por ejemplo:

nota _ En las fuentes más antiguas , el apóstrofe "'" se dibujaba inclinado hacia la izquierda (compárese: " ` " y " ´ "), y la tilde "~" se desplazaba hacia arriba (compárese: " ~ " y " ˜ "), por lo que solo adecuado para el papel de los símbolos agudos "´" y "tilde en la parte superior".

Si imprime el mismo carácter dos veces en una posición, obtiene un carácter en negrita ; si imprime un carácter en una posición y luego  un guión bajo "_" , obtiene un carácter subrayado:

Esta técnica todavía se usa hoy en día, por ejemplo, en el sistema de ayuda man.

Variantes nacionales de ASCII

El estándar ISO 646 (ECMA-6) prevé la posibilidad de colocar caracteres nacionales en ASCII. Para ello, se propone sustituir los caracteres " @ ", " [ ", " \ ", " ] ", " ^ ", " ` ", " { ", " | "", " } ", " ~ ". Además, en lugar del signo de libra "#" , se puede colocar el símbolo de libra "£" , y en lugar del símbolo de dólar "$"  - el signo de moneda "¤" . Una variante de ASCII que no contiene caracteres nacionales se denomina "US-ASCII" o "versión de referencia internacional".

Para algunos idiomas (con escritura no latina : ruso , griego , árabe , hebreo , etc.) hubo modificaciones más radicales de ASCII:

Posteriormente, resultó más conveniente utilizar codificaciones de 8 bits ( páginas de códigos ), en las que la mitad inferior de la tabla de códigos (0-127) está ocupada por caracteres US-ASCII, y la mitad superior (128-255 ) está ocupado por caracteres adicionales, incluido un conjunto de caracteres nacionales. Por lo tanto, la mitad superior de la tabla ASCII (antes de la adopción generalizada de Unicode ) se usaba mucho para representar caracteres localizados, las letras del idioma local. La falta de un estándar único para colocar caracteres cirílicos en la tabla ASCII causó muchos problemas con las codificaciones ( KOI-8 , Windows-1251 , etc.). Los hablantes de otros idiomas con escrituras no latinas también sufrieron debido a la presencia de varias codificaciones diferentes.

Los primeros 128 caracteres del estándar Unicode son los mismos que los caracteres US-ASCII correspondientes.

tabla ASCII
  .0 .una .2 .3 .cuatro .5 .6 .7 .ocho .9 .A .B .C .D .MI .F
0. NULO SOL STX ETX fin de semana ENQ ACK BEL licenciatura HT LF Vermont FF RC ASI QUE SI
una. DLE DC1 DC2 DC3 DC4 NAK SYN ETB PUEDEN EM SUB ESC FS SG RS A NOSOTROS
2.     ! " # ps % & ' ( ) * + , - . /
3. 0 una 2 3 cuatro 5 6 7 ocho 9 : ; < = > ?
cuatro @ A B C D mi F GRAMO H yo j k L METRO norte O
5. PAGS q R S T tu V W X Y Z [ \ ] ^ _
6. ` a b C d mi F gramo h i j k yo metro norte o
7. pags q r s t tu v w X y z { | } ~ DEL

En la primera versión del estándar ASCII (1963), en las posiciones 0x5e (94) y 0x5f (95) estaban los caracteres "flecha hacia arriba" y "flecha hacia la izquierda", respectivamente. El estándar ECMA-6 (1965) los reemplazó con el signo de intercalación y el guión bajo "_" , respectivamente.

En la Unión Soviética, el estándar fue aprobado en forma de tabla de la versión de referencia internacional del código KOI-7 H0 GOST 27463-87 (ST SEV 356-86) “Sistemas de procesamiento de información. Conjuntos de caracteres codificados de 7 bits". [2]

Caracteres de control

La tabla ASCII fue creada para el intercambio de información por teletipo . El conjunto incluía caracteres no imprimibles que se usaban como comandos para controlar el teletipo. Se utilizaron comandos similares en otras herramientas de mensajería precomputadoras ( código Morse , alfabeto de semáforos ), dadas las características específicas del dispositivo. La mayoría de los caracteres de control ASCII pronto perdieron su propósito y no se utilizan en los sistemas informáticos modernos.

Nota: más adelante en la lista, los códigos de caracteres se escriben en el sistema numérico hexadecimal , después de los nombres de los caracteres.

Los mensajes transmitidos por el canal de comunicación se dividieron en dos partes:

El "encabezado" contenía: direcciones del remitente y del destinatario, suma de verificación , etc .; podría colocarse antes del "texto" o después. El término "texto" era la parte del mensaje destinada a la impresión.

Símbolo código hexadecimal Descifrado Traducción Descripción
SOL 01 Comienzo del encabezado h _ _ comienzo de "encabezado" El símbolo de inicio de encabezado (SOH) marca una separación de datos que no son datos: la parte del flujo que contiene direcciones y otros gastos generales.
STX 02 Comienzo de texto _ _ _ principio de "texto" Encienda la impresora (TTY). El texto para imprimir estaba ubicado entre los símbolos " STX" y " ETX".
ETX 03 fin de texto _ _ _ fin del texto" Apague la impresora (TTY). En estos días, el código " 03" se usa para enviar una señal " SIGINT " a un proceso y se puede escribir presionando la combinación de teclas + . Al recibir dicha señal, el proceso debe salir .  CtrlC
fin de semana 04 fin de la transmisión _ _ fin de transmisión El símbolo es utilizado por los emuladores de terminal con el significado de " Fin de archivo " ( EOF: inglés  e nd of file ) y se puede enviar presionando la combinación de teclas Ctrl+ D. Al recibir dicha señal, el emulador de terminal determinará el proceso que está trabajando actualmente con el terminal y establecerá el indicador de fin de archivo en el flujo de entrada estándar de este proceso ( stdin : eng.  st andar d in put stream ) . Como resultado, el proceso dejará de leer stdin y comenzará a procesar los datos leídos.
ENQ 05 preguntar _ "¡Por favor confirmar!"
ACK 06 ck ahora repisa "¡Confirmo!" El símbolo “ NAK” significa lo contrario: “¡No confirmo!”.
BEL 07 campana l pitido : campana El carácter a menudo se representa como "\a" y se usa para hacer sonar el pitido. En una computadora personal moderna , el altavoz incorporado reproducirá el sonido . Por ejemplo, los siguientes comandos pueden reproducir este sonido:
  • echo -e "\a"o echo -e "\007"- si este comando se ingresa a través del programa " bash" ;
  • echo ^G- si este comando se ingresará a través del programa " cmd.exe" (para ingresar el símbolo " ^G", presione Ctrl+ G);
  • printf( "\a" );- si este comando se ejecutará como el código fuente del programa en el lenguaje "C" .
licenciatura 08 ritmo de espalda _ devolver un caracter La tecla se utiliza para borrar el carácter anterior. ← Backspace
PESTAÑA 09 tabulación _ pestaña horizontal Denotado como " \t ". A veces llamado " HT" (del inglés  horizontal t abulation ) .
LF 0A alimentación de línea _ _ traducción de línea Comando para bajar el carro de la impresora una línea hacia abajo. La designación de final de línea de un archivo de texto difiere entre familias de sistemas operativos:
  • para "UNIX" - un solo carácter " LF";
  • para "Windows" - la secuencia de caracteres " CR LF".

En muchos lenguajes de programación, el símbolo se representa como " \n ". Presionar una tecla mientras se genera texto traduce la línea. ↵ Enter

Vermont 0B pestaña vertical _ _ pestaña vertical
FF 0C formulario alimentado _ _ página ejecutada, nueva página Comando de impresora : continúa imprimiendo desde el principio de la hoja siguiente.
RC 0D retorno de carruaje _ retorno de carro El comando para la impresora es continuar imprimiendo desde el principio de la línea actual ( no desde una nueva línea). En muchos lenguajes de programación, el símbolo " CR" se denota como " \r ". En el sistema operativo Mac , el carácter " CR" (en el pasado) denotaba el final de una línea en un archivo de texto. CRDesde el teclado, se puede ingresar el símbolo “ ” presionando la combinación de teclas: Ctrl+ M.
ASI QUE 0E cambiar _ _ _ "Cambiar a otra cinta (codificación)" La otra cinta solía teñirse de rojo. En el futuro, el símbolo se utilizó para cambiar a la codificación nacional.
SI 0F s cambio i n "Cambiar a la cinta original (codificación)" El comando para realizar la acción, el reverso de la acción " SO".
DLE diez escape de tinta de datos _ "Protegiendo el canal de datos" Los caracteres que siguen a " DLE" deben tratarse como datos y no como caracteres de control.
DC1 once control de dispositivo d 1 _ Carácter de control del primer dispositivo El comando para habilitar el lector de cintas perforadas .
DC2 12 control de dispositivo 2 _ _ Carácter de control del segundo dispositivo El comando para encender el perforador .
DC3 13 control de dispositivo 3 _ _ Carácter de control del tercer dispositivo El comando para apagar el lector de cinta perforada.
DC4 catorce control de dispositivo 4 _ _ Carácter de control del cuarto dispositivo El comando para apagar el punzón.
NAK quince n negativo a c k reconocimiento "¡No lo apruebo!" Carácter inverso " ACK".
SYN dieciséis sincronización _ Este carácter se transmitía cuando (para la sincronización) era necesario transmitir algo.
ETB 17 final del bloque de texto _ final del bloque de texto A veces, el texto (por razones técnicas) se dividía en bloques.
PUEDEN Dieciocho puede cancelar "Cancelar" Cancelación de lo previamente transferido.
EM 19 fin del medio _ "Fin del portador" Se ha acabado la cinta perforada, el papel, etc.
SUB 1A sustituir _ "Sustituto" Se coloca el símbolo:
  • En lugar de un símbolo cuyo significado se perdió (o corrompió) durante la transmisión;
  • Ante un personaje cuya interpretación requiere cambiar a un juego de caracteres adicional;
  • Antes de que el carácter se imprima en un color diferente...

Actualmente, el carácter se inserta presionando la combinación de teclas Ctrl+ Zy se utiliza para indicar el final del archivo en los sistemas operativos "DOS" y "Windows" .

ESC 1B escapar mono Un signo de que el carácter que sigue a " ESC" tiene algún otro significado (no ASCII). Normalmente, el ESCcarácter " " va seguido de secuencias de escape ; en el sistema operativo DOS , son implementados por el controlador ANSI.SYS .
DEL 7F eliminar _ borrar el último caracter El símbolo " DEL" (que consta de todas las unidades en código binario) podría "martillar" cualquier carácter. Los dispositivos y programas ignoraron " DEL" de la misma manera que " NUL".

El código de este carácter proviene de los primeros procesadores de texto con memoria de cinta perforada : en ellos, el borrado de un carácter se producía “martillando” su código con agujeros (que denotaban unidades lógicas ).

Se admitió la separación de datos en 4 niveles:

Símbolo El código Descifrado Traducción Descripción
FS 1C separador de archivos _ _ separador de archivos el mensaje podría consistir en archivos
SG 1D g - separador de grupos separador de grupos los archivos se pueden agrupar
RS 1E separador de registros _ separador de registros los grupos pueden consistir en entradas
A NOSOTROS 1F separador de unidades _ separador de unidades los registros pueden consistir en unidades

Propiedades estructurales de la mesa

Representación informática de ASCII

En la gran mayoría de las computadoras modernas, la unidad de memoria mínima direccionable es un byte (8 bits de tamaño ); por lo que utiliza caracteres de 8 bits en lugar de 7 bits. Por lo general, un carácter ASCII se amplía a 8 bits simplemente agregando un bit de cero como el bit más significativo.

Sin embargo, en las computadoras IBM / 360 (en el caso de usar ASCII), se usó un método diferente: el sexto bit (si se considera primero el bit menos significativo) se mueve al séptimo, y el séptimo anterior se "bifurca" y copiado en el bit 8, y en el 6. Esto da como resultado una tabla [4] :

  .0 .una .2 .3 .cuatro .5 .6 .7 .ocho .9 .A .B .C .D .MI .F
0. NULO MOS EOA MOE EQT WRU ES CAMPANA BKSP HT LF Vermont FF RC ASI QUE SI
una. CC 0 CC 1 CC 2 CC 3 CC 4 ERRAR SINCRONIZAR LEM S0 _ S1 _ S2 _ S3 _ S4 _ S5 _ S6 _ S7 _
2.                                
3.                                
cuatro VACÍO ! " # ps % & ' ( ) * + , - . /
5. 0 una 2 3 cuatro 5 6 7 ocho 9 : ; < = > ?
6.                                
7.                                
ocho.                                
9.                                
UNA. @ A B C D mi F GRAMO H yo j k L METRO norte O
b. PAGS q R S T tu V W X Y Z [ \ ]
C.                                
D.                                
MI.   a b C d mi F gramo h i j k yo metro norte o
F. pags q r s t tu v w X y z       ESC DEL

En computadoras con una unidad mínima de memoria direccionable de 36 bits, al principio se usaban caracteres de 6 bits (1 palabra = 6 caracteres). Después de la transición a ASCII, estas computadoras comenzaron a colocar 5 caracteres de siete bits en una palabra (1 bit permaneció superfluo) o 4 caracteres de nueve bits.

Los códigos ASCII se utilizan en la programación como códigos intermedios multiplataforma para pulsaciones de teclas (a diferencia de los códigos de escaneo de PC de IBM y otros códigos internos). Para la disposición del teclado QWERTY , la tabla de códigos se parece a la que se muestra en la siguiente tabla [5] .

Véase también

Notas

  1. ASCII._  _ _ el Cambridge English Dictionary . diccionario.cambridge.org. Consultado el 9 de abril de 2018. Archivado desde el original el 27 de septiembre de 2017.
  2. GOST 27463-87 (ST SEV 356-86) Sistemas de procesamiento de información. Conjuntos de caracteres codificados de 7 bits (con Enmienda N 1), GOST del 29 de octubre de 1987 No. 27463-87 . docs.cntd.ru. Consultado el 9 de abril de 2018. Archivado desde el original el 23 de abril de 2018.
  3. ↑ Conjuntos de caracteres codificados , historia y desarrollo  . - 1. - Addison-Wesley Publishing Company, Inc. , 1980. - P. 6, 66, 211, 215, 217, 220, 223, 228, 236-238, 243-245, 247-253, 423, 425-428, 435-439. — ISBN 978-0-201-14460-4 .
  4. Amdahl GM, Blaauw GA, Brooks FP, Jr. "Arquitectura del sistema IBM/360". 1964
  5. Enumeración de claves . Microsoft.com . Consultado el 11 de junio de 2022. Archivado desde el original el 11 de junio de 2022.

Enlaces