
En informática y telecomunicaciones , un carácter es la representación codificada de un carácter del lenguaje natural (incluyendo letras , números y signos de puntuación ), un espacio en blanco (espacio o tabulación) o un carácter de control (que controla el hardware del ordenador que consume datos basados en caracteres). Una secuencia de caracteres se denomina cadena .
Algunos sistemas de codificación de caracteres representan cada carácter utilizando un número fijo de bits, mientras que otros sistemas utilizan tamaños variables. Se utilizaron varios tamaños de longitud fija para sistemas ahora obsoletos, como el código de caracteres de seis bits , [ 1 ] [ 2 ] el código Baudot de cinco bits e incluso sistemas de 4 bits (con solo 16 valores posibles). [ 3 ] El sistema ASCII más moderno utiliza el byte de 8 bits para cada carácter. Hoy en día, la codificación UTF-8 basada en Unicode utiliza un número variable de unidades de código del tamaño de un byte para definir un punto de código que se combinan para codificar un carácter.
Terminología
Personaje
En general, un carácter es un símbolo (como una letra o un número) que representa información, y en el contexto de la informática es una representación de dicho símbolo que puede ser aceptada por una computadora. [ 4 ] Un carácter implica una codificación de información, a menudo definida por un estándar como ANSI o Unicode .
Conjunto de caracteres
Un conjunto de caracteres identifica un repertorio de caracteres, cada uno de los cuales está asociado a un valor numérico único.
Glifo
Un glifo describe la apariencia visual particular de un carácter. Muchas fuentes de computadora constan de glifos que se indexan mediante el código numérico del carácter correspondiente.
Con la llegada y la amplia aceptación de Unicode [ 5 ] y los conjuntos de caracteres codificados independientes de bits , un carácter se considera cada vez más una unidad de información , independiente de cualquier manifestación visual particular. La norma internacional ISO/IEC 10646 (Unicode) define carácter , o carácter abstracto , como "un miembro de un conjunto de elementos utilizados para la organización, el control o la representación de datos". La definición de Unicode complementa esto con notas explicativas que animan al lector a diferenciar entre caracteres, grafemas y glifos, entre otras cosas. Esta diferenciación es un ejemplo del tema más amplio de la separación entre presentación y contenido .
Por ejemplo, la letra hebrea alef ("א") es utilizada frecuentemente por los matemáticos para denotar ciertos tipos de infinito (ℵ), pero también se usa en textos hebreos comunes. En Unicode, estos dos usos se consideran caracteres diferentes y tienen dos identificadores numéricos Unicode distintos (" puntos de código "), aunque su representación sea idéntica. Por el contrario, el logograma chino para agua ("水") puede tener una apariencia ligeramente diferente en textos japoneses que en textos chinos, y las tipografías locales pueden reflejar esta diferencia. Sin embargo, en Unicode se consideran el mismo carácter y comparten el mismo punto de código.
El estándar Unicode diferencia entre estos caracteres abstractos y los caracteres codificados , o caracteres codificados que se han emparejado con códigos numéricos que facilitan su representación en las computadoras.
Combinando carácter
El carácter de combinación es abordado por Unicode, que asigna un punto de código a cada uno de los siguientes:
- 'i' (U+0069),
- la diéresis de combinación (U+0308), y
- 'ï' (U+00EF).
Esto permite codificar el carácter central de la palabra 'naïve' ya sea como un solo carácter 'ï' o como una combinación del carácter 'i' con la diéresis de combinación: (U+0069 LETRA MINÚSCULA LATINA I + U+0308 DIÉRESIS DE COMBINACIÓN); esto también se representa como 'i ̈ ' .
carbonizarse
En C , char(abreviatura de carácter) es un tipo de dato con un tamaño de un byte , [ 6 ] [ 7 ] pero a diferencia del tamaño de facto de byte como 8 bits, este uso de byte es menos específico. Byte se define como lo suficientemente grande como para contener cualquier miembro del "conjunto básico de caracteres de ejecución". El número de bits utilizado por un compilador es accesible a través de la CHAR_BITmacro. El tamaño más común es, con mucho, 8 bits, y POSIX requiere que sea de 8 bits. [ 8 ] En los estándares modernos de C, charse requiere que contenga unidades de código UTF-8 [ 6 ] [ 7 ] que requieren un tamaño mínimo de 8 bits.
Dado que un punto de código Unicode puede requerir hasta 21 bits [ 9 ] , el chartipo generalmente no es lo suficientemente grande para cada carácter. No obstante, el chartipo es adecuado para la codificación UTF-8, donde cada punto de código requiere de 1 a 4 bytes.
El hecho de que históricamente un carácter se almacenara en un solo byte ha llevado a que los términos "char" y "character" se usen indistintamente, lo que genera confusión hoy en día cuando se utilizan codificaciones multibyte como UTF-8. La documentación POSIX moderna intenta solucionar esto definiendo "character" como una secuencia de uno o más bytes que representan un único símbolo gráfico o código de control, y usa "byte" cuando se refiere a datos char. [ 10 ] [ 11 ] Sin embargo, todavía contiene errores, como definir una matriz como charuna matriz de caracteres (en lugar de una matriz de bytes ). [ 12 ]
Unicode se puede almacenar en cadenas de unidades de código que son más grandes que charlos llamados caracteres anchos . El tipo C original se llamaba wchar_t . Debido a que algunas plataformas lo definen wchar_tcomo 16 bits y otras como 32 bits, las versiones actuales proporcionan char16_ty sin ambigüedad. Aun así, los objetos que se almacenan podrían no ser caracteres, por ejemplo, el UTF-16char32_t de longitud variable a menudo se almacena en matrices de .char16_t
Otros lenguajes también tienen un chartipo. Muchos, incluido C++ , usan bytes de 8 bits como C. [ 7 ] Otros, como Java , usan almacenamiento ancho de 2 bytes para acomodar más directamente UTF-16.
Véase también
- Carácter (símbolo) – Carácter como signo o símbolo semiótico
- Literal de carácter : tipo de literal en programación.
- Carácter combinatorio : carácter sin espacio que modifica a otro carácter.
- Rellenar personaje
- Homoglifo : diferentes glifos que son visualmente similares.
- Caracteres del conjunto de caracteres universal (Universal Character Set) : lista completa de los caracteres disponibles en la mayoría de los ordenadores.
Referencias
- ↑ Dreyfus, Phillippe (1958). "Diseño del sistema de la Gamma 60". Managing Requirements Knowledge, International Workshop on, Los Angeles . New York. pp. 130– 133. doi : 10.1109/AFIPS.1958.32 .
[…] Se utiliza un código de datos interno: los datos cuantitativos (numéricos) se codifican en un código decimal de 4 bits; los datos cualitativos (alfanuméricos) se codifican en un código alfanumérico de 6 bits. El
código de instrucción
interno significa que las instrucciones se codifican en código binario directo.
En cuanto a la longitud de la información interna, el cuanto de información se llama "
catena
" y se compone de 24 bits que representan 6 dígitos decimales o 4 caracteres alfanuméricos. Este cuanto debe contener un múltiplo de 4 y 6 bits para representar un número entero de caracteres decimales o alfanuméricos. Se determinó que veinticuatro bits constituían un buen compromiso entre el mínimo de 12 bits, que resultaría en un flujo de transferencia demasiado bajo desde una memoria de núcleo de lectura paralela, y 36 bits o más, lo que se consideró un cuanto de información demasiado grande. La catena debe considerarse como el equivalente a un carácter en máquinas de longitud
de palabra
variable , pero no puede denominarse así, ya que puede contener varios caracteres. Se transfiere en serie hacia y desde la memoria principal.
Para evitar llamar a un "cuanto" una palabra, o a un conjunto de caracteres una letra (una palabra es una palabra y un cuanto es otra cosa), se creó una nueva palabra: "catena". Es una palabra inglesa que aparece en el
diccionario Webster,
aunque no en francés. La definición de Webster para la palabra catena es "una serie conectada"; por lo tanto, un elemento de información de 24 bits. La palabra catena se utilizará en adelante.
Por lo tanto, el código interno ha sido definido. Ahora bien, ¿cuáles son los códigos de datos externos? Estos dependen principalmente del dispositivo de procesamiento de información involucrado. El
Gamma 60
está diseñado para manejar información relevante para cualquier estructura codificada en binario. Así, una tarjeta perforada de 80 columnas se considera un elemento de información de 960 bits; 12 filas multiplicadas por 80 columnas equivalen a 960 perforaciones posibles; se almacena como una imagen exacta en 960 núcleos magnéticos de la memoria principal, ocupando 2 columnas de tarjetas una catena. […]
- ↑ Blaauw, Gerrit Anne ; Brooks Jr., Frederick Phillips ; Buchholz, Werner (1962), "4: Natural Data Units" (PDF) , en Buchholz, Werner (ed.), Planning a Computer System – Project Stretch , McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp. 39–40 , LCCN 61-10466 , archivado (PDF) del original el 3 de abril de 2017 , recuperado el 3 de abril de 2017 ,
[…] Los términos utilizados aquí para describir la estructura impuesta por el diseño de la máquina, además de
bit
, se enumeran a continuación.
Byte
denota un grupo de bits utilizados para codificar un carácter, o el número de bits transmitidos en paralelo hacia y desde las unidades de entrada/salida. Aquí se utiliza
un término distinto a
«carácter»
porque un mismo carácter puede representarse en diferentes aplicaciones mediante más de un código, y distintos códigos pueden usar diferentes cantidades de bits (es decir, diferentes tamaños de byte). En la transmisión de entrada/salida, la agrupación de bits puede ser completamente arbitraria y no tener relación con los caracteres reales. (El término deriva de
«bite»
, pero se ha reescrito para evitar mutaciones accidentales a
«bit
»).
Una
palabra
consiste en el número de bits de datos transmitidos en paralelo desde o hacia la memoria en un ciclo de memoria. El
tamaño de la palabra
se define, por lo tanto, como una propiedad estructural de la memoria. (El término
«catena»
fue acuñado con este propósito por los diseñadores del
ordenador
Bull
GAMMA 60 ).
Un bloque
se refiere al número de palabras transmitidas hacia o desde una unidad de entrada/salida en respuesta a una única instrucción de entrada/salida. El tamaño del bloque es una propiedad estructural de una unidad de entrada/salida; puede haber sido fijo por el diseño o estar sujeto a la variación del programa. […]
- ↑ "Términos y abreviaturas". Manual de programación en lenguaje ensamblador MCS-4 - Manual de programación del sistema de microcomputadoras INTELLEC 4 (PDF) ( Edición preliminar ). Santa Clara, California, EE. UU.: Intel Corporation . Diciembre de 1973. págs. v, 2–6. MCS-030-1273-1. Archivado (PDF) del original el 1 de marzo de 2020. Consultado el 2 de marzo de 2020.
[…]
Bit
: la unidad más pequeña de información que se puede representar. (Un bit puede estar en uno de dos estados: 0 o 1). […]
Byte
: un grupo de 8 bits contiguos que ocupan una única ubicación de memoria. […] Carácter: un grupo de 4 bits de datos contiguos. […]
(Nota: Este manual del Intel 4004 utiliza el término " carácter" para referirse a entidades de datos de 4 bits en lugar de 8 bits . Intel ya en 1974 empezó a usar el término más común " nibble" para las entidades de 4 bits en la documentación del procesador 4040 , su sucesor ).
- ↑ "Definición de CARÁCTER" . Merriam-Webster . Consultado el 1 de abril de 2018 .
- ↑ Davis, Mark (5 de mayo de 2008). "Transición a Unicode 5.1" . Blog de Google . Consultado el 28 de septiembre de 2008 .
- 1 2 "§5.2.4.2.1 Tamaños de tipos enteros <limits.h> / §6.2.5 Tipos / §6.5.3.4 Los operadores sizeof y _Alignof". ISO/IEC 9899:2018 - Tecnología de la información -- Lenguajes de programación -- C .
{{cite book}}:|website=ignorado ( ayuda ) - 1 2 3 "§1.7 El modelo de memoria de C++ / §5.3.3 Sizeof". ISO/IEC 14882:2011 .
- ↑ "<limits.h>" . pubs.opengroup.org . Consultado el 1 de abril de 2018 .
- ↑ "Glosario de términos Unicode – Punto de código" . Consultado el 14 de mayo de 2019 .
- ↑ "Definición POSIX de Carácter" .
- ↑ "Referencia a STREN POSIX" .
- ↑ "Definición POSIX de matriz de caracteres" .
Enlaces externos
- Caracteres: Una breve introducción del Proyecto de Información de Linux (LINFO)
- La norma ISO/IEC TR 15285:1998 resume el modelo de caracteres de la ISO/IEC, centrándose en las definiciones de terminología y diferenciando entre caracteres y glifos.
- Codificación de caracteres
- Tipos de datos
- Tipografía digital
- Tipos primitivos