De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En la terminología de telecomunicaciones basada en computadoras y máquinas , un carácter es una unidad de información que corresponde aproximadamente a un grafema , una unidad similar a un grafema o un símbolo , como en un alfabeto o silabario en la forma escrita de un lenguaje natural . [1]

Los ejemplos de caracteres incluyen letras , dígitos numéricos , signos de puntuación comunes (como "." O "-") y espacios en blanco . El concepto también incluye caracteres de control , que no corresponden a símbolos visibles sino a instrucciones para formatear o procesar el texto. Los ejemplos de caracteres de control incluyen retorno de carro o tabulación , así como instrucciones para impresoras u otros dispositivos que muestran o procesan texto de otra manera.

Los caracteres generalmente se combinan en cadenas .

Históricamente, el término carácter también se usó para indicar un número específico de bits contiguos . Si bien en la actualidad se asume que un carácter se refiere a 8 bits (un byte ), otras definiciones, como el código de caracteres de 6 bits, alguna vez fueron populares (usando solo mayúsculas , mientras que suficientes bits para representar también minúsculas , no con números y puntuación permitido), [2] [3] e incluso el código Baudot de 5 bits también se han utilizado en el pasado, y aunque el término también se ha aplicado a 4 bits [4] con sólo 16 valores posibles, no fue pretende, ni puede, representar el alfabeto inglés completo. Ver tambiénCaracteres del juego de caracteres universal , donde 8 bits no son suficientes para representar, mientras que todos pueden representarse con una o más unidades de código de 8 bits con UTF-8 .

Codificación [ editar ]

Las computadoras y los equipos de comunicación representan caracteres mediante una codificación de caracteres que asigna cada carácter a algo (una cantidad entera representada por una secuencia de dígitos , generalmente) que se puede almacenar o transmitir a través de una red . Dos ejemplos de codificaciones habituales son ASCII y la codificación UTF-8 para Unicode . Si bien la mayoría de las codificaciones de caracteres asignan caracteres a números y / o secuencias de bits, el código Morse representa caracteres utilizando una serie de impulsos eléctricos de diferente longitud.

Terminología [ editar ]

Históricamente, el término carácter ha sido ampliamente utilizado por los profesionales de la industria para referirse a un carácter codificado , a menudo según lo definido por el lenguaje de programación o API . Asimismo, el conjunto de caracteres se ha utilizado ampliamente para referirse a un repertorio específico de caracteres que se han asignado a secuencias de bits o códigos numéricos específicos. El término glifo se utiliza para describir una apariencia visual particular de un personaje. Muchas fuentes de computadora consisten en glifos que están indexados por el código numérico del carácter correspondiente.

Con el advenimiento y la aceptación generalizada de Unicode [5] y los conjuntos de caracteres codificados con agnóstico de bits , [se necesita aclaración ] un personaje se ve cada vez más como una unidad de información , independiente de cualquier manifestación visual particular. La Norma Internacional ISO / IEC 10646 (Unicode) define el carácter o carácter abstractocomo "miembro de un conjunto de elementos utilizados para la organización, control o 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. Tal diferenciación es un ejemplo del tema más amplio de la separación de presentación y contenido .

Por ejemplo, los matemáticos suelen utilizar la letra hebrea aleph ("א") para denotar ciertos tipos de infinito (ℵ), pero también se utiliza en el texto hebreo ordinario. En Unicode, estos dos usos se consideran caracteres diferentes y tienen dos identificadores numéricos Unicode diferentes (" puntos de código "), aunque se pueden representar de forma idéntica. Por el contrario, el logograma chino para el agua ("水") puede tener una apariencia ligeramente diferente en los textos japoneses que en los textos chinos, y los tipos de letra locales pueden reflejar esto. Sin embargo, en Unicode se consideran el mismo carácter y comparten el mismo punto de código.

El estándar Unicode también diferencia entre estos caracteres abstractos y caracteres codificados o caracteres codificados que han sido emparejados con códigos numéricos que facilitan su representación en computadoras.

Combinando personaje [ editar ]

El carácter de combinación también es abordado por Unicode. Por ejemplo, Unicode asigna un punto de código a cada uno de

  • 'yo' (U + 0069),
  • la diéresis combinada (U + 0308), y
  • 'ï' (U + 00EF).

Esto hace posible codificar el carácter intermedio de la palabra 'ingenuo' ya sea como un carácter único 'ï' o como una combinación del carácter 'i' con la diéresis combinada: (U + 0069 LETRA MINÚSCULA LATINA I + U + 0308 COMBINACIÓN DE DIÉRESIS); esto también se traduce como 'ï'.

Estos se consideran canónicamente equivalentes por el estándar Unicode.

char [ editar ]

Un char en el lenguaje de programación C es un tipo de datos con el tamaño de exactamente un byte , [6] que a su vez se define como lo suficientemente grande como para contener cualquier miembro del "conjunto de caracteres de ejecución básico". El número exacto de bits se puede comprobar mediante una CHAR_BITmacro. Con mucho, el tamaño más común es de 8 bits y el estándar POSIX requiere que sea de 8 bits. [7] En los estándares C más nuevos, se requiere que char contenga unidades de código UTF-8 [6], lo que requiere un tamaño mínimo de 8 bits.

Un punto de código Unicode puede requerir hasta 21 bits. [8] Esto no cabe en un carácter en la mayoría de los sistemas, por lo que se usa más de uno para algunos de ellos, como en la codificación de longitud variable UTF-8 donde cada punto de código toma de 1 a 4 bytes. Además, un "carácter" puede requerir más de un punto de código (por ejemplo, con la combinación de caracteres ), dependiendo de lo que se signifique con la palabra "carácter".

El hecho de que un carácter se haya almacenado históricamente en un solo byte llevó a que los dos términos ("char" y "carácter") se usaran indistintamente en la mayoría de la documentación. Esto a menudo hace que la documentación sea confusa o engañosa cuando se utilizan codificaciones multibyte como UTF-8, y ha llevado a implementaciones ineficientes e incorrectas de funciones de manipulación de cadenas (como calcular la "longitud" de una cadena como un recuento de unidades de código en lugar de bytes). La documentación POSIX moderna intenta solucionar este problema, definiendo "carácter" como una secuencia de uno o más bytes que representan un solo símbolo gráfico o código de control, e intenta utilizar "byte" cuando se refiere a datos de caracteres.[9] [10] Sin embargo, todavía contiene errores como la definición de una matriz de carbón como un array de caracteres(en lugar de una matriz de bytes ). [11]

Unicode también se puede almacenar en cadenas formadas por unidades de código que son más grandes que char . Estos se denominan " caracteres anchos ". El tipo C original se llamó wchar_t . Debido a que algunas plataformas definen wchar_t como 16 bits y otras lo definen como 32 bits, las versiones recientes han agregado char16_t , char32_t . Incluso entonces, los objetos que se almacenan pueden no ser caracteres, por ejemplo, el UTF-16 de longitud variable a menudo se almacena en matrices de char16_t .

Otros idiomas también tienen un tipo char . Algunos, como C ++, utilizan 8 bits como C. Otros, como Java, utilizan 16 bits para char para representar valores UTF-16.

Ver también [ editar ]

  • Carácter literal
  • Carácter (símbolo)
  • Carácter de relleno
  • Combinando carácter
  • Personajes del juego de caracteres universal
  • Homoglyph

Referencias [ editar ]

  1. ^ "Definición de CARÁCTER" . www.merriam-webster.com . Consultado el 1 de abril de 2018 .
  2. ^ Dreyfus, Phillippe (1958). "Diseño del sistema del Gamma 60". Gestión del conocimiento de requisitos, Taller internacional sobre, Los Ángeles . Nueva York. págs. 130-133. doi : 10.1109 / AFIPS.1958.32 . […] Se utiliza 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 están codificadas en código binario directo. En cuanto a la longitud de la información interna, el cuanto de información se denomina " catena
    , "y está compuesto por 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 encontró que veinticuatro bits son un buen compromiso entre el mínimo de 12 bits, que daría lugar a un flujo de transferencia demasiado bajo desde una memoria central de lectura paralela, y 36 bits o más, que se consideró un cuanto de información demasiado grande. equivalente a un carácter en máquinas de longitud variable de palabras , pero no se puede llamar así, ya que puede contener varios caracteres y se transfiere en serie hacia y desde la memoria principal.
    No queriendo llamar a un "cuanto" una palabra, o un conjunto de caracteres una letra (una palabra es una palabra y un cuanto es otra cosa), se hizo una nueva palabra, y se llamó "catena". Es una palabra inglesa y existe en Webster, aunque no en francés. La definición de Webster de la palabra catena es "una serie conectada"; por lo tanto, un elemento de información de 24 bits. La palabra catena se utilizará de aquí en adelante.
    Por tanto, se ha definido el código interno. Ahora bien, ¿qué son los códigos de datos externos? Estos dependen principalmente del dispositivo de manejo de información involucrado. El Gamma 60  [ fr ]está diseñado para manejar información relevante para cualquier estructura codificada en binario. Por tanto, 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 golpes posibles; se almacena como una imagen exacta en 960 núcleos magnéticos de la memoria principal con 2 columnas de tarjetas ocupando una catena. […]
  3. ^ Blaauw, Gerrit Anne ; Brooks Jr., Frederick Phillips ; Buchholz, Werner (1962), "4: Unidades de datos naturales" (PDF) , en Buchholz, Werner (ed.), Planning a Computer System - Project Stretch , McGraw-Hill Book Company, Inc. / The Maple Press Company, York , PA., Págs. 39–40, LCCN 61-10466 , archivado (PDF) del original el 2017-04-03 , recuperado el 2017-04-03 , […] Términos utilizados aquí para describir la estructura impuesta por la máquina el diseño, además del 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 unidades de entrada-salida. Aquí se utiliza un término que no sea carácter porque un carácter dado puede estar representado en diferentes aplicaciones por más de un código, y diferentes códigos pueden usar diferentes números de bits (es decir, diferentes tamaños de bytes). 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 se acuña a partir de mordida , pero se vuelve a escribir para evitar una mutación accidental 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. Tamaño de palabrase define así como una propiedad estructural de la memoria. (El término catena fue acuñado con este propósito por los diseñadores de la computadora Bull GAMMA 60  [ fr ] .)
    Bloque se refiere al número de palabras transmitidas hacia o desde una unidad de entrada-salida en respuesta a una sola instrucción de entrada-salida. El tamaño del bloque es una propiedad estructural de una unidad de entrada-salida; puede haber sido fijado por el diseño o dejado que el programa lo modifique. […]
  4. ^ "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, Estados Unidos: Intel Corporation . Diciembre de 1973. págs. V, 2-6. MCS-030-1273-1. Archivado (PDF) desde el original el 1 de marzo de 2020 . Consultado el 2 de marzo de 2020 . […] Bit : la unidad de información más pequeña que se puede representar. (Un bit puede estar en uno de dos estados I 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 contiguos de datos. […] (NB. Este manual de Intel 4004 usa el término carácter que se refiere a entidades de datos de 4 bits en lugar de 8 bits . Intel cambió para usar el término más común nibble para entidades de 4 bits en su documentación para el procesador sucesivo 4040 ya en 1974. )
  5. Davis, Mark (5 de mayo de 2008). "Pasando a Unicode 5.1" . Blog de Google . Consultado el 28 de septiembre de 2008 .
  6. ^ a b "§1.7 El modelo de memoria C ++ / §5.3.3 Sizeof". ISO / IEC 14882: 2011 .
  7. ^ "<limites.h>" . pubs.opengroup.org . Consultado el 1 de abril de 2018 .
  8. ^ "Glosario de términos Unicode - Punto de código" . Consultado el 14 de mayo de 2019 .
  9. ^ "Definición de carácter POSIX" .
  10. ^ "Referencia de strlen POSIX" .
  11. ^ "Definición de POSIX de matriz de caracteres" .

Error de cita: una referencia definida por lista denominada "Goyvaerts_Classes" no se utiliza en el contenido (consulte la página de ayuda ).

Enlaces externos [ editar ]

  • Personajes: Una breve introducción por The Linux Information Project (LINFO)
  • ISO / IEC TR 15285: 1998 resume el modelo de caracteres de ISO / IEC, centrándose en las definiciones de terminología y diferenciando entre caracteres y glifos.