stringtranslate.com

Personaje (informática)

Diagrama de datos de cadenas en informática. Muestra la palabra "ejemplo" con cada letra en un cuadro separado. La palabra "Cadena" está arriba y se refiere a la oración completa. La etiqueta "Personaje" está debajo y apunta a un cuadro individual.
Una cadena de siete caracteres.

En terminología de telecomunicaciones informáticas y basadas en 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]

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. Ejemplos de caracteres de control incluyen retorno de carro y tabulación , así como otras instrucciones para impresoras u otros dispositivos que muestran o procesan texto de otra manera.

Los caracteres normalmente se combinan en cadenas .

Históricamente, el término carácter se utilizaba para indicar un número específico de bits contiguos . Si bien en la actualidad se supone que un carácter se refiere a 8 bits (un byte ), otras opciones como el código de caracteres de 6 bits alguna vez fueron populares, [2] [3] y el código Baudot de 5 bits se ha utilizado en el pasado. también. El término incluso se ha aplicado a 4 bits [4] con sólo 16 valores posibles. Todos los sistemas modernos utilizan una secuencia de tamaño variable de estas piezas de tamaño fijo, por ejemplo, UTF-8 utiliza un número variable de unidades de código de 8 bits para definir un " punto de código " y Unicode utiliza un número variable de ellas para definir un "carácter". ".

Codificación

Las computadoras y los equipos de comunicación representan caracteres utilizando una codificación de caracteres que asigna cada carácter a algo (por lo general, una cantidad entera representada por una secuencia de dígitos ) que puede almacenarse o transmitirse 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 longitud variable.

Terminología

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 definido por el lenguaje de programación o API . Asimismo, el juego 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 informáticas constan de glifos indexados mediante el código numérico del carácter correspondiente.

Con la llegada y la aceptación generalizada de Unicode [5] y los conjuntos de caracteres codificados independientes de bits , [ se necesita aclaración ] un carácter 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 carácter o carácter abstracto como "un 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 alientan 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 entre 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 pueden representarse de manera 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. Pero, no obstante, 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 los caracteres codificados o caracteres codificados que han sido emparejados con códigos numéricos que facilitan su representación en los ordenadores.

Combinando carácter

Unicode también aborda el carácter combinado . Por ejemplo, Unicode asigna un punto de código a cada uno de

Esto permite codificar el carácter central de la palabra 'ingenuo' ya sea como un solo carácter 'ï' o como una combinación del carácter 'i ' con la diéresis combinada: (U+0069 LETRA I MINÚSCULA LATINA + U+0308 COMBINANDO DIÉRESIS); esto también se traduce como 'ï' .

Estos se consideran canónicamente equivalentes según el estándar Unicode.

carbonizarse

Un char en el lenguaje de programación C es un tipo de datos con un tamaño de exactamente un byte , [6] [7] 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 CHAR_BITuna macro. Con diferencia, el tamaño más común es de 8 bits y el estándar POSIX requiere que sea de 8 bits. [8] En los estándares C más nuevos, se requiere char para contener unidades de código UTF-8 [6] [7] , lo que requiere un tamaño mínimo de 8 bits.

Un punto de código Unicode puede requerir hasta 21 bits. [9] 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 ocupa de 1 a 4 bytes. Además, un "carácter" puede requerir más de un punto de código (por ejemplo, al combinar caracteres ), dependiendo de lo que se signifique con la palabra "carácter".

El hecho de que históricamente un carácter se almacenara en un solo byte llevó a que los dos términos ("char" y "character") se usaran indistintamente en la mayor parte 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 único símbolo gráfico o código de control, e intenta utilizar "byte" cuando se refiere a datos de caracteres. [10] [11] Sin embargo, todavía contiene errores como definir una matriz de caracteres como una matriz de caracteres (en lugar de una matriz de bytes ). [12]

Unicode también se puede almacenar en cadenas formadas por unidades de código mayores que char . Estos se denominan " caracteres anchos ". El tipo C original se llamaba 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, es posible que los objetos que se almacenan no sean 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++, usan al menos 8 bits como C. [7] Otros, como Java , usan 16 bits para char para representar valores UTF-16.

Ver también

Referencias

  1. ^ "Definición de PERSONAJE". Merriam Webster . Consultado el 1 de abril de 2018 .
  2. ^ Dreyfus, Phillippe (1958). "Diseño del sistema del Gamma 60". Gestión del conocimiento de los 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 descubrió que veinticuatro bits era 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. La catena debe considerarse como el equivalente de un carácter en las máquinas de longitud de palabra variable , pero no puede llamarse así, ya que puede contener varios caracteres. Se transfiere en serie hacia y desde la memoria principal. Al no querer llamar palabra a un "cuanto", ni letra a un conjunto de caracteres (una palabra es una palabra y un cuanto es otra cosa), se hizo una nueva palabra y se la 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. En lo sucesivo se utilizará la palabra catena. Por tanto, el código interno ha quedado definido. ¿Cuáles son ahora 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. 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 con 2 columnas de tarjetas que ocupan una cadena. […]


  3. ^ Blaauw, Gerrit Anne ; Brooks Jr., Federico Phillips ; Buchholz, Werner (1962), "4: Unidades de datos naturales" (PDF) , en Buchholz, Werner (ed.), Planificación de un sistema informático: extensión del proyecto , McGraw-Hill Book Company, Inc. / The Maple Press Company, York , PA., págs. 39–40, LCCN  61-10466, archivado (PDF) desde el original el 3 de abril de 2017 , consultado el 3 de abril de 2017 , […] Términos utilizados aquí para describir la estructura impuesta por la máquina El diseño, además de la broca , 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 y salida. Aquí se utiliza un término distinto de carácter porque un carácter determinado puede representarse en diferentes aplicaciones mediante más de un código, y diferentes códigos pueden utilizar 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 partir de bit , pero se repelió para evitar una mutación accidental a bit ). Una palabra consta del número de bits de datos transmitidos en paralelo desde o hacia la memoria en un ciclo de memoria. El tamaño de las palabras se define así como una propiedad estructural de la memoria. (El término catena fue acuñado para 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 única instrucción de entrada-salida. El tamaño del bloque es una propiedad estructural de una unidad de entrada-salida; Es posible que haya sido arreglado 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 microcomputadora 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: 0 o 1). […] Byte : grupo de 8 bits contiguos que ocupan una única ubicación de memoria. […] Carácter: un grupo de 4 bits de datos contiguos. […](NB. Este manual de Intel 4004 utiliza el término carácter que se refiere a entidades de datos de 4 bits en lugar de 8 bits . Intel cambió a usar el término más común nibble para entidades de 4 bits en su documentación para el siguiente procesador 4040 ya en 1974. )
  5. ^ Davis, Mark (5 de mayo de 2008). "Pasar a Unicode 5.1". Blog de Google . Consultado el 28 de septiembre de 2008 .
  6. ^ ab "§5.2.4.2.1 Tamaños de tipos de 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 )
  7. ^ abc "§1.7 El modelo de memoria C++ / §5.3.3 Tamaño de". ISO/CEI 14882:2011.
  8. ^ "<límites.h>". pubs.opengroup.org . Consultado el 1 de abril de 2018 .
  9. ^ "Glosario de términos Unicode: punto de código" . Consultado el 14 de mayo de 2019 .
  10. ^ "Definición POSIX de carácter".
  11. ^ "Referencia de cadena POSIX".
  12. ^ "Definición POSIX de matriz de caracteres".

enlaces externos