Binario Offset , [1] también conocido como exceso-K , [1] exceso- N , exceso-e , [2] [3] código exceso o representación sesgada , es un método para la representación número firmado donde un número firmado n es representado por el patrón de bits correspondiente al número sin signo n + K , siendo K el valor de polarización o desplazamiento . No existe un estándar para el binario de compensación, pero la mayoría de las veces la K para una nLa palabra binaria de -bit es K = 2 n −1 (por ejemplo, el desplazamiento 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 con desplazamiento 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 ). [4]
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 -order) 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. [5]
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 generalmente 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 números 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: [6]
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
Código | Tipo | Parámetros | Pesos | Distancia | Comprobación | Complemento | Grupos de 5 | Suma simple | ||
---|---|---|---|---|---|---|---|---|---|---|
Desplazamiento, k | Ancho, n | Factor, q | ||||||||
8421 código | n [8] | 0 | 4 | 1 | 8 4 2 1 | 1-4 | No | No | No | No |
Código Nuding [8] [9] | 3 n + 2 [8] | 2 | 5 | 3 | N / A | 2-5 | sí | 9 | sí | sí |
Código Stibitz [10] | n + 3 [8] | 3 | 4 | 1 | 8 4 −2 −1 | 1-4 | No | 9 | sí | sí |
Código de diamante [8] [11] | 27 n + 6 [8] [12] [13] | 6 | 8 | 27 | N / A | 3-8 | sí | 9 | sí | sí |
25 n + 15 [12] [13] | 15 | 8 | 25 | N / A | 3+ | sí | sí | ? | sí | |
23 n + 24 [12] [13] | 24 | 8 | 23 | N / A | 3+ | sí | sí | ? | sí | |
19 n + 42 [12] [13] | 42 | 8 | 19 | N / A | 3-8 | sí | 9 | sí | sí |
|
|
|
|
|
|
Ver también
- Representaciones de números firmados
- Número binario
- Exceso-3
- Exceso-128
- Sesgo de exponente
- Exceso de código Gray
- Complemento de unos
- Portadora de compensación binaria
Referencias
- ^ a b Chang, Angela; Chen, Yen; Delmas, Patrice (7 de marzo de 2006). "2.5.2: Representación de datos: Representación binaria de compensación (Exceso-K)". COMPSCI 210S1T 2006 (PDF) . Departamento de Ciencias de la Computación, Universidad de Auckland , Nueva Zelanda. pag. 18 . Consultado el 4 de febrero de 2016 .
- ^ a b c Dokter, Folkert; Steinhauer, Jürgen (18 de junio de 1973). Electrónica digital . Biblioteca técnica de Philips (PTL) / Macmillan Education (Reimpresión de la 1ª edición en inglés). Eindhoven, Países Bajos: The Macmillan Press Ltd. / NV Philips 'Gloeilampenfabrieken . pag. 44. doi : 10.1007 / 978-1-349-01417-0 . ISBN 978-1-349-01419-4. SBN 333-13360-9. Consultado el 1 de julio de 2018 . (270 páginas) (NB. Se basa en una traducción del volumen I de la edición alemana en dos volúmenes).
- ^ a b c Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. "2.4.4.4. Exzeß-e-Kodes". Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (en alemán). I (mejorada y ampliada 5ª ed.). Hamburgo, Alemania: Deutsche Philips GmbH . págs. 51, 53–54. ISBN 3-87145-272-6. (xii + 327 + 3 páginas) (NB. La edición alemana del volumen I se publicó en 1969, 1971, dos ediciones en 1972 y 1975. El volumen II se publicó en 1970, 1972, 1973 y 1975.)
- ^ IBM System / 360 Principios de funcionamiento formulario A22-6821. Varias ediciones disponibles en la WWW. [ página necesaria ]
- ^ Departamento de Ciencias Eléctricas y de la Computación, Southeastern Massachusetts University , North Dartmouth, MA, EE. UU. (1988). Chen, Chi-hau (ed.). Manual de procesamiento de señales . Nueva York, Estados Unidos: Marcel Dekker, Inc. / CRC Press . ISBN 0-8247-7956-8. Consultado el 4 de febrero de 2016 .
- ^ "Formatos de código binario de conversión de datos" (PDF) . Intersil Corporation (publicado en 2000). Mayo de 1997. AN9657.1 . Consultado el 4 de febrero de 2016 .
- ^ a b Morgenstern, Bodo (enero de 1997) [julio de 1992]. "10.5.3.5 Exceso de código electrónico" . Elektronik: Digitale Schaltungen und Systeme . Studium Technik (en alemán). 3 (2ª ed. Revisada). Friedrich Vieweg y Sohn Verlagsgesellschaft mbH . págs. 120-121. doi : 10.1007 / 978-3-322-85053-9 . ISBN 978-3-528-13366-5. Consultado el 26 de mayo de 2020 . (xviii + 393 páginas)
- ^ a b c d e f g h Diamond, Joseph M. (abril de 1955) [12 de noviembre de 1954]. "Comprobación de códigos para ordenadores digitales" . Actas de la IRE . Correspondencia. Nueva York, Estados Unidos. 43 (4): 483–490 [487–488]. doi : 10.1109 / JRPROC.1955.277858 . eISSN 2162-6634 . ISSN 0096-8390 . Archivado desde el original el 26 de mayo de 2020 . Consultado el 26 de mayo de 2020 .(2 páginas) (NB. Los resultados analizados en este informe se basan en un estudio anterior realizado por Joseph M. Diamond y Morris Plotkin en la Escuela de Ingeniería Moore , Universidad de Pensilvania , en 1950-1951, por contrato con Burroughs Adding Machine Co. )
- ^ a b Nuding, Erich (1 de enero de 1959). "Ein Sicherheitscode für Fernschreibgeräte, die zur Ein- und Ausgabe an elektronischen Rechenmaschine verwendet werden" . Zeitschrift für Angewandte Mathematik und Mechanik (ZAMM) . Kleine Mitteilungen (en alemán). 39 (5–6): 429. Bibcode : 1959ZaMM ... 39..249N . doi : 10.1002 / zamm.19590390511 . (1 pagina)
- ^ a b Stibitz, George Robert (9 de febrero de 1954) [19 de abril de 1941]. "Computadora compleja" . Patente US2668661A . Consultado el 24 de mayo de 2020 . [1] (102 páginas)
- ^ Plotkin, Morris (septiembre de 1960). "Códigos binarios con distancia mínima especificada". Transacciones IRE sobre teoría de la información . IT-6 (4): 445–450. doi : 10.1109 / TIT.1960.1057584 . eISSN 2168-2712 . ISSN 0096-1000 . S2CID 40300278 .(NB. También publicado como Informe de la División de Investigación 51-20 de la Universidad de Pensilvania en enero de 1951.)
- ^ a b c d e Brown, David T. (septiembre de 1960). "Detección de errores y corrección de códigos binarios para operaciones aritméticas". Transacciones IRE en computadoras electrónicas . EC-9 (3): 333–337. doi : 10.1109 / TEC.1960.5219855 . ISSN 0367-9950 . S2CID 28263032 .
- ^ a b c d e Peterson, William Wesley ; Weldon, Jr., Edward J. (1972) [febrero de 1971, 1961]. "15.3 Códigos aritméticos / 15.6 Códigos AN + B autocomplementados". Escrito en Honolulu, Hawaii. Códigos de corrección de errores (2 ed.). Cambridge, Massachusetts, Estados Unidos: Instituto de Tecnología de Massachusetts ( The MIT Press ). págs. 454–456, 460–461 [456, 461]. ISBN 0-262-16-039-0. LCCN 76-122262 . (xii + 560 + 4 páginas)
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 conoce como 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 de 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).