Offset binario - Offset binary

Binario Offset , también referido como de exceso de K , exceso- N , exceso-e , código exceso o representación sesgada , es un método para la representación número firmado donde un número firmado n está representado por el patrón de bits correspondiente a la número sin signo n + K , siendo K el valor de polarización o compensación . No existe un estándar para el binario de compensación, pero la mayoría de las veces, la K para una palabra binaria de n bits es K  = 2 n −1 (por ejemplo, la compensación para un número binario de cuatro dígitos sería 2 3 = 8). Esto tiene como consecuencia que el valor negativo mínimo está representado por todos ceros, el valor "cero" está representado por un 1 en el bit más significativo y un cero en todos los demás bits, y el valor positivo máximo está representado por todos unos ( convenientemente, esto es lo mismo que usar el complemento a dos pero con el bit más significativo invertido). También tiene la consecuencia de que en una operación de comparación lógica, se obtiene el mismo resultado que con una operación de comparación numérica de forma verdadera, mientras que, en la notación de complemento a dos, una comparación lógica concordará con la operación de comparación numérica de forma verdadera si y solo si los números son comparados tienen el mismo signo. De lo contrario, el sentido de la comparación se invertirá, y todos los valores negativos se considerarán mayores que todos los valores positivos.

El código Baudot de 5 bits utilizado en los primeros telégrafos de multiplexación síncrona puede verse como un código binario (Gray) reflejado en offset-1 ( exceso-1 ) .

Un ejemplo históricamente prominente de notación offset-64 ( exceso-64 ) fue la notación de punto flotante (exponencial) en las generaciones de computadoras IBM System / 360 y System / 370. La "característica" (exponente) tomó la forma de un número de 64 en exceso de siete bits (el bit de orden superior del mismo byte contenía el signo del significando ).

El exponente de 8 bits en Microsoft Binary Format , un formato de punto flotante utilizado en varios lenguajes de programación (en particular BASIC ) en las décadas de 1970 y 1980, se codificó usando una notación offset-129 ( exceso-129 ).

El estándar IEEE para aritmética de punto flotante (IEEE 754) usa varios tamaños de exponente, pero también usa notación de desplazamiento para el formato de cada precisión. Sin embargo, de manera inusual, en lugar de usar "exceso 2 n −1 ", usa "exceso 2 n −1  - 1" (es decir, exceso-15 , exceso-127 , exceso-1023 , exceso-16383 ), lo que significa que invertir el interlineado (alto -orden) bit del exponente no convertirá el exponente a la notación correcta en complemento a dos.

El binario de compensación se utiliza a menudo en el procesamiento de señales digitales (DSP). La mayoría de los chips de analógico a digital (A / D) y de digital a analógico (D / A) son unipolares, lo que significa que no pueden manejar señales bipolares (señales con valores tanto positivos como negativos). Una solución simple para esto es polarizar las señales analógicas con un desplazamiento de CC igual a la mitad del rango del convertidor A / D y D / A. Los datos digitales resultantes terminan en formato binario de compensación.

La mayoría de los chips de CPU de computadora estándar no pueden manejar el formato binario de compensación directamente. Los chips de CPU normalmente solo pueden manejar enteros con y sin signo y formatos de valor de punto flotante. Estos chips de CPU pueden manejar valores binarios de compensación de varias formas. Los datos pueden tratarse simplemente como enteros sin signo, lo que requiere que el programador se ocupe del desplazamiento cero en el software. Los datos también se pueden convertir a formato de entero con signo (que la CPU puede manejar de forma nativa) simplemente restando el desplazamiento cero. Como consecuencia de la mayor parte de desplazamiento para un común n palabra bits siendo 2 n -1 , lo que implica que el primer bit se invierte con respecto al complemento de dos, no hay necesidad de una etapa de sustracción separado, pero uno puede simplemente invertir la primera un poco. A veces, esto es una simplificación útil en el hardware y también puede ser conveniente en el software.

Tabla de offset binario para cuatro bits, con complemento a dos para comparación:

Decimal Desplazamiento binario,
K = 8
Dos de
complemento
7 1111 0111
6 1110 0110
5 1101 0101
4 1100 0100
3 1011 0011
2 1010 0010
1 1001 0001
0 1000 0000
−1 0111 1111
−2 0110 1110
−3 0101 1101
−4 0100 1100
−5 0011 1011
−6 0010 1010
−7 0001 1001
−8 0000 1000

El binario de compensación se puede convertir en complemento a dos invirtiendo el bit más significativo. Por ejemplo, con valores de 8 bits, el valor binario de compensación se puede aplicar XOR con 0x80 para convertirlo en complemento a dos. En hardware especializado, puede ser más sencillo aceptar el bit tal como está, pero aplicar su valor en significado invertido.

Códigos relacionados

Comparación de código
Código Tipo Parámetros Pesos Distancia Comprobación Complemento Grupos de 5 Suma simple
Desplazamiento, k Ancho, n Factor, q
8421 código norte 0 4 1 8 4 2 1 1-4 No No No No
Código Nuding 3 n + 2 2 5 3 N / A 2-5 9
Código Stibitz n + 3 3 4 1 8 4  −2  −1 1-4 No 9
Código de diamante 27 n + 6 6 8 27 N / A 3-8 9
25 n + 15 15 8 25 N / A 3+ ?
23 n + 24 24 8 23 N / A 3+ ?
19 n + 42 42 8 19 N / A 3-8 9
Decimal
 
0
1
2
3
4
5
6
7
8
9
8421
4 3 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
Stibitz
4 3 2 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
Desnudo
5 4 3 2 1
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 0 1 1 1
1 1 0 1 0
1 1 1 0 1
Diamante
8 7 6 5 4 3 2 1
0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1
0 0 1 1 1 1 0 0
0 1 0 1 0 1 1 1
0 1 1 1 0 0 1 0
1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 0
1 1 0 0 0 0 1 1
1 1 0 1 1 1 1 0
1 1 1 1 1 0 0 1
19 n + 42
8 7 6 5 4 3 2 1
0 0 1 0 1 0 1 0
0 0 1 1 1 1 0 1
0 1 0 1 0 0 0 0
0 1 1 0 0 0 1 1
0 1 1 1 0 1 1 0
1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 0
1 0 1 0 1 1 1 1
1 1 0 0 0 0 1 0
1 1 0 1 0 1 0 1

Ver también

Referencias

Otras lecturas

  • Gosling, John B. (1980). "6.8.5 Representación de exponentes". En Sumner, Frank H. (ed.). Diseño de Unidades Aritméticas para Computadoras Digitales . Serie de Ciencias de la Computación de Macmillan (1 ed.). Departamento de Ciencias de la Computación, Universidad de Manchester , Manchester, Reino Unido: The Macmillan Press Ltd . págs. 91, 137. ISBN 0-333-26397-9. […] [W] usamos un valor de [n exponente] que se desplaza a la mitad del rango binario del número. […] Esta forma especial a veces se denomina exponente sesgado , ya que es el valor convencional más una constante. Algunos autores lo han llamado característica, pero este término no debe usarse, ya que los CDC y otros usan este término para la mantisa . También se denomina representación de 'exceso -', donde, por ejemplo, - es 64 para un exponente de 7 bits (2 7−1  = 64). […]
  • Savard, John JG (2018) [2006]. "Representaciones decimales" . quadibloc . Archivado desde el original el 16 de julio de 2018 . Consultado el 16 de julio de 2018 . (NB. Menciona Exceso-3, Exceso-6, Exceso-11, Exceso-123.)
  • Savard, John JG (2018) [2007]. "Codificación Chen-Ho y decimal densamente empaquetado" . quadibloc . Archivado desde el original el 3 de julio de 2018 . Consultado el 16 de julio de 2018 . (NB. Menciona Exceso-25, Exceso-250).
  • Savard, John JG (2018) [2005]. "Formatos de coma flotante" . quadibloc . Archivado desde el original el 3 de julio de 2018 . Consultado el 16 de julio de 2018 . (NB. Menciona Exceso-32, Exceso-64, Exceso-128, Exceso-256, Exceso-976, Exceso-1023, Exceso-1024, Exceso-2048, Exceso-16384.)
  • Savard, John JG (2018) [2005]. "Aritmética informática" . quadibloc . Archivado desde el original el 16 de julio de 2018 . Consultado el 16 de julio de 2018 . (NB. Menciona Exceso-64, Exceso-500, Exceso-512, Exceso-1024).