Clasificación | Codificaciones latinas básicas alfanuméricas de 6 bits |
---|---|
Sucedido por | EBCDIC |
BCD ( decimal codificado en binario ), también llamado BCD alfanumérico , BCD alfamérico , Código de intercambio BCD , [1] o BCDIC , [1] es una familia de representaciones de numerales, letras latinas mayúsculas y algunos caracteres especiales y de control como códigos de caracteres de seis bits .
A diferencia de codificaciones posteriores como ASCII , los códigos BCD no estaban estandarizados. Los distintos fabricantes de computadoras, e incluso las distintas líneas de productos del mismo fabricante, solían tener sus propias variantes y, a veces, incluían caracteres únicos. Otras codificaciones de seis bits con asignaciones completamente diferentes, como algunas variantes de FIELDATA [1] o Transcode , a veces se denominan incorrectamente BCD.
Muchas variantes de BCD codifican los caracteres '0' a '9' como valores binarios correspondientes.
Técnicamente, el decimal codificado en binario describe la codificación de números decimales donde cada dígito decimal está representado por un número fijo de bits, generalmente cuatro.
Con la introducción de la tarjeta IBM en 1928, IBM creó un código [a] capaz de representar información alfanumérica, [2] posteriormente adoptado por otros fabricantes. Este código representa los números del 0 al 9 mediante una sola perforación, y utiliza múltiples perforaciones para letras mayúsculas y caracteres especiales. [3] Una letra tiene dos perforaciones (zona [12,11,0] + dígito [1–9]); la mayoría de los caracteres especiales tienen dos o tres perforaciones (zona [12,11,0 o ninguna] + dígito [2–7] + 8).
El código BCD es la adaptación del código de tarjeta perforada a un código binario de seis bits codificando las filas de dígitos (nueve filas, más las no perforadas) en los cuatro bits inferiores, y las filas de zona (tres filas, más las no perforadas) en los dos bits superiores. [4] El dígito cero (una sola perforación en la fila 0) suele manejarse de alguna manera especial, y el código de dígitos se extendió a los valores del 10 al 15 combinando un dígito en el rango del 2 al 7 con una perforación en la fila 8. IBM aplicó los términos decimal codificado en binario y BCD a las variaciones de alfanuméricos BCD utilizados en la mayoría de las primeras computadoras IBM, incluidas las series IBM 1620 , IBM 1400 y los miembros de arquitectura no decimal de la serie IBM 700/7000 .
Entre los proveedores que utilizaban BCD estaban Burroughs , [5] Bull , CDC , [6] IBM , General Electric (la división informática fue adquirida por Honeywell en 1969), NCR , Siemens y Sperry - UNIVAC .
IBM anunció el Código de intercambio decimal codificado en binario extendido de 8 bits (EBCDIC), basado en BCDIC, en 1964 con la introducción de su línea System/360 .
El carácter Recordmark o Record mark (representado como ‡) es un carácter utilizado para marcar el final de un registro . [7] El código BCD para este carácter es 32 8 en algunas variantes BCD. El equivalente Unicode más cercano es U+29E7 ⧧ THERMODYNAMIC , pero no se encuentra en muchas fuentes, por lo que a menudo se utiliza U+2021 ‡ DOUBLE DAGGER en su lugar. Funcionalmente, esto corresponde al carácter EBCDIC IRS (ASCII RS ), X'1E'.
El carácter Groupmark o Group mark (representado como ) es un carácter utilizado para indicar el inicio o el final de un grupo de campos relacionados. [8] El código BCD para este carácter es 77 8 en algunas variantes BCD. El groupmark fue propuesto para la estandarización Unicode en 2015, [9] y se le asignó el valor U+2BD2 ⯒ GROUP MARK . Funcionalmente esto corresponde al carácter EBCDIC IGS (ASCII GS ), X'1D'. Ahora está en Unicode 10.0 en esta posición, pero solo las fuentes Symbola y Unifont lo admiten.
Por el contrario , la marca denominativa no es un carácter BCD, sino un bit indicador que se utiliza para marcar el final de una palabra en algunas computadoras con longitud de palabra variable, como la IBM 1401 .
Existen muchas versiones diferentes del código BCD de seis bits. Existen tres categorías principales de diferencias:
En los países de habla hispana, el carácter "Ñ" no existía en el sistema original, por lo que se eligió "@" por la mayoría de los fabricantes: Bull, NCR y Control Data, pero existía una inconsistencia al fusionar las bases de datos a código ASCII de 7 bits, pues en ese sistema de codificación se eligió el carácter "/" , resultando dos códigos diferentes para el mismo carácter.
Los siguientes gráficos muestran los valores numéricos de los caracteres BCD en notación hexadecimal (base 16), ya que refleja con mayor claridad la estructura de un sistema decimal codificado en binario de 4 bits, más dos bits adicionales. Por ejemplo, el código para "A", en la fila 3x y la columna x1, es 31 en hexadecimal o "11 0001" en binario.
Las primeras versiones de BCDIC tenían 48 caracteres, ya que estaban basadas en patrones de perforación de tarjetas y en conjuntos de caracteres de impresoras, ninguno de los cuales fomentaba tener un número de caracteres potencia de dos.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | |||
1x | / | S | yo | tú | V | Yo | incógnita | Y | O | , | % | |||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | * | ||||
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | . | ⌑ |
Esto se basó en un código de tarjeta perforada de 40 caracteres; los 37 originales (10 dígitos, 26 letras y espacio en blanco), más tres caracteres comercialmente importantes agregados alrededor de 1932: [1] : 67 guión-menos utilizado para imprimir saldos de crédito y nombres con guión, el ampersand también utilizado en muchos nombres y direcciones ( Procter & Gamble , Mr. & Mrs. Smith), y el asterisco utilizado para sobreimprimir campos no utilizados al imprimir cheques .
En lugar de seguir la representación de almacenamiento del IBM 704, el IBM 1401 siguió la representación de cinta (descendiente del BCD de 48 caracteres), utilizando así el código de todos los ceros para el espacio en blanco y el código 10 (0x0A) para el dígito cero. Había definido formas de caracteres para todos los valores posibles, con fines de documentación, [10] pero sólo 48 de los 63 caracteres que no eran espacios en blanco eran imprimibles, y había una variación considerable en cómo se representaban en la práctica los demás valores de código (sombreados en la tabla siguiente). Incluso los demás caracteres variaban entre las diferentes cadenas de impresión disponibles para la impresora IBM 1403 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ¢ | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | % | = | ' | " |
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | ! | $ | * | ) | ; | Δ |
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | ? | . | ⌑ | ( | < | ⯒ |
La página de códigos BCDIC-A se asignó como página de códigos 353 , también conocida como CP353 . Algunos de los caracteres de esta página de códigos no están en Unicode. (La duplicación de '#' se puede encontrar en la propia documentación de IBM y no es un error en este caso. [11] )
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ␢ | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | % | gamma | \ | ⧻ |
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | ! | # | * | ] | ; | Δ |
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | ? | . | ⌑ | [ | < | ⯒ |
En 0x1A está la marca de registro. En 0x3F está la marca de grupo.
La página de códigos BCDIC-B se asignó como página de códigos 354 , también conocida como CP354 . [12] Algunos de los caracteres de esta página de códigos no están en Unicode.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ⊙ | ' | : | > | √ |
1x | ␢ | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | ( | gamma | \ | ⧻ |
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | ! | # | * | ] | ; | Δ |
3x | + | A | B | do | D | mi | F | GRAMO | yo | I | ? | . | ) | [ | < | ⯒ |
En 0x1A está la marca de registro. En 0x3F está la marca de grupo.
El PTTC/BCD tenía 5 opciones. Había cinco páginas de códigos. Se muestran a continuación. La opción estándar del PTTC/BCD se asignó como página de códigos 355 o CP355 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | gamma | |||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | < | $ | ||||
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | ) | . |
La opción PTTC/BCD H se asignó como página de códigos 357 o CP357 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | ||||
1x | ' | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | ||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | ! | $ | ||||
3x | + | A | B | do | D | mi | F | GRAMO | yo | I | ? | . |
La opción de correspondencia PTTC/BCD se asignó como página de códigos 358 o CP358 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ||||
1x | ! | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | ||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | < | ; | ||||
3x | = | A | B | do | D | mi | F | GRAMO | yo | I | > | . |
La opción Monocase PTTC/BCD se asignó como página de códigos 359 o CP359 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | yo | tú | V | Yo | incógnita | Y | O | , | |||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | |||||
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | . |
La opción Duocase PTTC/BCD se asignó como página de códigos 360 o CP360 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | espacio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | yo | tú | V | Yo | incógnita | Y | O | , | |||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | |||||
3x | & | A | B | do | D | mi | F | GRAMO | yo | I | . |
El IBM 704 reordenó el código BCDIC para permitir un orden de clasificación alfabético normal internamente, con 0 antes de 1 y A antes de Z. Podía traducir automáticamente entre esta forma interna y el BCDIC anterior al leer y escribir cintas magnéticas . [13] : 35
La siguiente tabla muestra las asignaciones de códigos para la computadora IBM 704. Las posiciones de código no asignadas aparecen como espacios en blanco. [13] : 35
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ||||
1x | & | A | B | do | D | mi | F | GRAMO | yo | I | +0 | . | ⌑ | |||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | −0 | $ | * | |||
3x | espacio | / | S | yo | tú | V | Yo | incógnita | Y | O | ⧧ | , | % |
(+0y−0(Raramente se utilizaban caracteres que correspondían a la convención de tarjetas perforadas de un dígito 0 con un signo perforado en las filas 12 u 11.)
La siguiente tabla muestra las asignaciones de código para la impresora tipo 716 utilizada a partir de la computadora IBM 704 y hasta la 7094. [13] : 58 La interfaz 704 [d] enviaba filas de tarjetas perforadas virtuales a esta impresora, dos palabras (72 bits) a la vez, por lo que la asignación de caracteres BCD de 6 bits se hacía mediante software y no estaba integrada en la impresora.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | - | ||||
1x | + | A | B | do | D | mi | F | GRAMO | yo | I | . | ⌑ | ||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | * | ||||
3x | 0 | / | S | yo | tú | V | Yo | incógnita | Y | O | , | % |
Se trata de un repertorio de 45 caracteres (sin contar el espacio en blanco, que es manejado especialmente por la impresora), ya que los caracteres +
, -
y *
están duplicados.
Hubo algunas variaciones; IBM 704 Fortran tenía un conjunto diferente de caracteres especiales (preservando solo el signo menos duplicado). [14]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | - | ||||
1x | + | A | B | do | D | mi | F | GRAMO | yo | I | . | ) | ||||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | * | ||||
3x | 0 | / | S | yo | tú | V | Yo | incógnita | Y | O | , | ( |
Se utilizó un código similar para los sucesores IBM 709 , 7090 y 7094 , [15] pero con algunos de los caracteres especiales reasignados:
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | " | ||||
1x | & | A | B | do | D | mi | F | GRAMO | yo | I | +0 | . | ) | |||
2x | - | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | −0 | $ | * | |||
3x | espacio | / | S | yo | tú | V | Yo | incógnita | Y | O | ± | , | ( |
A continuación se muestra la tabla del código GBCD de GE/Honeywell, una variante del BCD. [16]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ | # | @ | : | > | ? |
1x | espacio | A | B | do | D | mi | F | GRAMO | yo | I | & | . | ] | ( | < | \ |
2x | ^ | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | - | $ | * | ) | ; | ' |
3x | + | / | S | yo | tú | V | Yo | incógnita | Y | O | _ | , | % | = | " | ! |
La siguiente tabla muestra las asignaciones de códigos para la computadora Burroughs B5500 , a veces denominada BIC (Código de intercambio de Burroughs). [17]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ? | : | > | ≥ |
1x | + | A | B | do | D | mi | F | GRAMO | yo | I | . | [ | & | ( | < | ← |
2x | × | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | $ | * | - | ) | ; | ≤ |
3x | espacio | / | S | yo | tú | V | Yo | incógnita | Y | O | , | % | ≠ | = | ] | " |
{{cite web}}
: Falta o está vacío |title=
( ayuda )