Transcript Clase 8

BCD y
Representación Binaria de Caracteres
BCD, ASCII, EBCDIC, ISO/IEC 8859, Unicode.
BCD
Decimal codificado en binario (BCD)
Binary-Coded Decimal (BCD) o Decimal codificado en binario es un estándar para representar
números decimales en el sistema binario, en donde cada dígito decimal (0, 1, 2, …, 9) es codificado con
una secuencia de 4 bits (nibble o cuarteto). Esto es así porque es el número de bits necesario para
representar el nueve, el número más alto que se puede representar en BCD.
Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden realizar
operaciones aritméticas como suma, resta, multiplicación y división de números en representación
decimal, sin perder en los cálculos la precisión ni tener las inexactitudes en que normalmente se
incurre con las conversiones de decimal a binario puro y de binario puro a decimal. La conversión de
los números decimales a BCD y viceversa es muy sencilla, pero los cálculos en BCD se llevan más
tiempo y son algo más complicados que con números binarios puros.
Cada dígito decimal tiene una representación binaria codificada con 4 bits:
BCD
Los números decimales, se codifican en BCD con los de bits que representan sus dígitos. Por ejemplo,
la codificación en BCD del número decimal 59237 es:
La representación anterior (en BCD) es diferente de la representación del mismo número decimal en
binario puro:
Nota: Existen varias formas alternativas de
códificación BCD. En la gráfica a la derecha se
presentan los códigos BCD más empleados.
La ventaja del código BCD frente a la
representación binaria clásica es que no hay
límite para el tamaño de un número. Los
números que se representan en formato binario
están generalmente limitados por el número
mayor que se pueda representar con 8, 16, 32 o
64 bits. Por el contrario, utilizando BCD, añadir
un nuevo dígito sólo implica añadir una nueva
secuencia de 4 bits.
BCD
Como se observa, con el BCD sólo se utilizan 10 de las 16 posibles combinaciones que se pueden
formar con números de 4 bits, por lo que el sistema pierde capacidad de representación, aunque se
facilita la compresión de los números. Esto es porque el BCD sólo se usa para representar cifras, no
números en su totalidad. Esto quiere decir que para números de más de una cifra hacen falta dos o
más números BCD, según el número de dígitos en la cifra.
• Una forma sencilla de calcular números en BCD es sumando normalmente bit a bit, y si el conjunto
de 4 bits sobrepasa el número 9, entonces se le suma un 6 (0110) en binario, para poder volver a
empezar, como si hiciéramos un módulo al elemento sumante.
• Desde que los sistemas informáticos empezaron a almacenar los datos en conjuntos de ocho bits
(octeto), hay dos maneras comunes de almacenar los datos BCD:
•
•
Omisión de los cuatro bits más significativos (como sucede en el EBCDIC)
Almacenamiento de dos datos BCD; es el denominado BCD empaquetado, en el que también se incluye en
primer lugar el signo, por lo general con 1100 para el + y 1101 para el -.
De este modo, el número 127 sería representado como (11110001, 11110010, 11110111) en el EBCDIC o
(00010010, 01111100) en el BCD empaquetado.
• El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmética binaria o en
electrónica. Los números se pueden mostrar fácilmente en visualizadores (displays) de siete
segmentos enviando cada cuarteto BCD a un visualizador. El BIOS de una computadora almacena
generalmente la fecha y la hora en formato BCD; probablemente por razones históricas se evitó la
necesidad de su conversión en ASCII.
RepresentaciónBinariade Caracteres
Representación Binaria de Caracteres
Como se vio anteriormente, el sistema binario es un sistema numérico, por lo que la representación
binaria de números en otras bases (otros sistemas) resulta de la conversión matemática entre una
base a otra, se podría decir que es un método directo. Sin embargo, la representación de caracteres
en manera binaria requiere de esquemas que relacionen una secuencia o número binario a cada
caracter dentro de un conjunto de caracteres bien establecido.
Se han implementado varios estándares bien conocidos para la representación binaria de caracteres,
entre las que destacan los siguientes:
• ASCII
• EBCDIC
• ISO/IEC 8859
• Unicode
RepresentaciónBinariade Caracteres-ASCII
Código o Estándar ASCII
ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar
Estadounidense para el Intercambio de Información), pronunciado generalmente [áski], es un código binario
de representación de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno y en otras
lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde
1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución
de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las
minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
•
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit de
paridad adicional para detectar errores en la transmisión.
Nota: A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859, que es
una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el
español.
•
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En
la actualidad define códigos para 32 caracteres no imprimibles, de los cuales la mayoría son caracteres de
control obsoletos que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles
que les siguen en la numeración (empezando por el carácter espacio).
•
Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para
representar textos y para el control de dispositivos que manejan texto como el teclado. No deben
confundirse los códigos ALT+número de teclado con los códigos ASCII.
RepresentaciónBinariade Caracteres-ASCII
Tabla del Código ASCII (7 bits)
RepresentaciónBinariade Caracteres-ASCII
ASCII Extendido
Se denomina ASCII extendido a cualquier código, juego o estándar de caracteres de 8 bits en el cual
los códigos 32 a 126 (0x20 a 0x7E) coinciden con los caracteres imprimibles de ASCII, así como los
caracteres comúnmente llamados "de espacio", estos son los códigos de control de 8 a 13 (0x08 a
0x0D), ambos inclusive. Las codificaciones de ASCII extendido utilizan, además, parte o la totalidad de
los códigos superiores a 128 para codificar caracteres adicionales a los caracteres imprimibles ASCII.
RepresentaciónBinariade Caracteres-EBCDIC
Código EBCDIC
EBCDIC (Extended Binary Coded Decimal Interchange Code) es un código estándar de 8 bits usado por
computadoras mainframe IBM para representar caracteres alfanuméricos, controles y signos de puntuación
(define un total de 256 caracteres). IBM adaptó el EBCDIC del código de tarjetas perforadas en los
años 1960 y lo promulgó como una táctica customer-control cambiando el código estándar ASCII.
Nota: Este código surge como una ampliación del código BCD. En las transmisiones de datos es necesario
utilizar un gran número de caracteres de control para la manipulación de los mensajes y realización de otras
funciones. De ahí que el código BCD se extendiera a una representación utilizando 8 bits dando origen al
código EBCDIC (Extended Binary Coded Decimal Interchange Code).
Existen muchas versiones (codepages) de EBCDIC con caracteres diferentes, respectivamente sucesiones
diferentes de los mismos caracteres. Por ejemplo al menos hay 9 versiones nacionales de EBCDIC con Latín
1 caracteres con sucesiones diferentes.
El siguiente es el código CCSID 500, una
variante de EBCDIC. Los caracteres 0x00–
0x3F y 0xFF son de control, 0x40 es un
espacio, 0x41 es no-saltar página y 0xCA es
un guion suave.
RepresentaciónBinariade Caracteres-EBCDIC
Código EBCDIC versión Latin 1
RepresentaciónBinariade Caracteres–ISO/IEC 8859
Código ISO/IEC 8859
ISO/IEC 8859 es un conjunto ISO y la IEC estándar de 8 bits para codificaciones de caracteres para su uso en
computadoras. se caracterizan por poseer la codificación ASCII en su rango inicial (128 caracteres) y otros 128
caracteres para cada codificación, con lo que en total utilizan 8 bits. La norma se divide en los números, publicado por
separado, tales como ISO/IEC 8859-1, ISO/IEC 8859-2, etc., cada uno de los cuales puede ser informal a que se refiere
como una norma en sí misma. En la actualidad hay 15 partes a partir de 2006, sin contar el abandonado ISO/ IEC 885912 estándar.
ISO/IEC 8859-1
ISO 8859-1 es una norma de la ISO que pertenece al grupo de juegos de caracteres de la ISO conocidos como ISO/IEC
8859 y define la codificación del alfabeto latino, incluyendo los diacríticos (como letras acentuadas, ñ, ç), y letras
especiales (como ß, Ø), necesarios para la escritura de las siguientes lenguas originarias de Europa occidental:
afrikáans, alemán, español, catalán, euskera, aragonés, asturiano, danés, escocés, feroés, finés, francés, gaélico,
gallego, inglés, islandés, italiano, holandés, noruego, portugués y sueco.
•
•
•
También conocida como Alfabeto Latino n.º 1 o ISO Latín 1.
Los caracteres de ISO-8859-1 son además los primeros 256 caracteres del estándar ISO 10646 (Unicode).
La norma ISO 8859-15 consistió en una revisión de la ISO 8859-1, incorporando el símbolo del Euro y algunos
caracteres necesarios para dar soporte completo al francés, finés y estonio.
RepresentaciónBinariade Caracteres–ISO/IEC 8859
Lenguajes soportados por el código ISO/IEC 8859, aunque incompletamente
Enlace a tablase ISO/IEC 8859
http://alis.isoc.org/codage/iso8859/jeuxiso.en.htm
RepresentaciónBinariade Caracteres–Unicode
Código Unicode (ISO 10646)
Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento
informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas,
además de textos clásicos de lenguas muertas. El término Unicode proviene de los tres objetivos
perseguidos: universalidad, uniformidad y unicidad.
•
Unicode especifica un nombre e identificador numérico único para cada carácter o símbolo, el code point (‘punto
de código’), además de otras informaciones necesarias para su uso correcto: direccionalidad, mayúsculas y otros
atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa
que se pueden mezclar en un mismo texto sin la introducción de marcas o caracteres de control.
•
Este estándar es mantenido por el Unicode Technical Committee (UTC), integrado en el Unicode Consortium, del
que forman parte con distinto grado de implicación empresas como: Microsoft, Apple, Adobe, IBM, Oracle, SAP,
Google o Yahoo, instituciones como la Universidad de Berkeley, y profesionales y académicos a título individual.[3] El
Unicode Consortium mantiene estrecha relación con ISO/IEC, con la que mantiene desde 1991 el acuerdo de
sincronizar sus estándares que contienen los mismos caracteres y puntos de código.
•
El establecimiento de Unicode ha sido un ambicioso proyecto para reemplazar los esquemas de codificación de
caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos
plurilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el
dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado
en un número considerable de tecnologías recientes, que incluyen XML, Java y sistemas operativos modernos.
•
La descripción completa del estándar y las tablas de caracteres están disponibles en la página web oficial de
Unicode [1]. La referencia completa se publica, además, en forma de libro impreso cada vez que se libera una nueva
versión principal. La versión digital de este libro está disponible de forma gratuita. Las revisiones y adiciones se
publican de forma independiente.
RepresentaciónBinariade Caracteres–Unicode
Enlace a Tablas Unicode:
http://www.Unicode.org/charts