El binario con desplazamiento , [ 1 ] también conocido como exceso-K , [ 1 ] exceso- N , exceso-e , [ 2 ] [ 3 ] código de exceso o representación sesgada , es un método para la representación de números con signo donde un número con signo n se representa mediante el patrón de bits correspondiente al número sin signo n + K , siendo K el valor de sesgo o desplazamiento . No existe un estándar para el binario con desplazamiento, pero lo más común es que el K para una palabra binaria de n bits sea 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 se representa con todos ceros, el valor "cero" se representa con un 1 en el bit más significativo y cero en todos los demás bits, y el valor positivo máximo se representa con todos unos (convenientemente, esto es lo mismo que usar el complemento a dos pero con el bit más significativo invertido). Esto también implica que, en una comparación lógica, se obtiene el mismo resultado que en una comparación numérica en su forma verdadera, mientras que, en la notación de complemento a dos, una comparación lógica coincidirá con una comparación numérica en su forma verdadera solo si los números comparados tienen el mismo signo. De lo contrario, el sentido de la comparación se invertirá, considerándose todos los valores negativos mayores que todos los 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 reflejado (Gray) con desplazamiento de 1 ( exceso de 1 ) .
Un ejemplo históricamente destacado de la notación offset-64 ( exceso-64 ) se encuentra en la notación de punto flotante (exponencial) de las generaciones de computadoras IBM System/360 y System/370. La "característica" (exponente) adoptaba la forma de un número de exceso-64 de siete bits (el bit de orden superior del mismo byte contenía el signo de la mantisa ). [ 4 ]
El exponente de 8 bits en el formato binario de Microsoft , un formato de punto flotante utilizado en varios lenguajes de programación (en particular BASIC ) en las décadas de 1970 y 1980, se codificaba utilizando una notación de desplazamiento-129 ( exceso-129 ).
El estándar IEEE para aritmética de punto flotante (IEEE 754) utiliza notación de desplazamiento para la parte del exponente en cada uno de sus diversos formatos de precisión . Sin embargo, de manera inusual, en lugar de usar "exceso 2 n −1 " utiliza "exceso 2 n −1 − 1" (es decir, exceso-15 , exceso-127 , exceso-1023 , exceso-16383 ), lo que significa que invertir el bit principal (de orden superior) del exponente no convertirá el exponente a la notación correcta de complemento a dos.
El formato binario con desplazamiento se utiliza con frecuencia en el procesamiento digital de señales (DSP). La mayoría de los chips de conversión analógica a digital (A/D) y digital a analógica (D/A) son unipolares, lo que significa que no pueden procesar señales bipolares (señales con valores tanto positivos como negativos). Una solución sencilla consiste en 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 se presentan entonces en formato binario con desplazamiento. [ 5 ]
La mayoría de los chips de CPU estándar no pueden manejar directamente el formato binario con desplazamiento . Los chips de CPU generalmente solo pueden manejar enteros con signo y sin signo, y formatos de valores de punto flotante. Estos chips de CPU pueden manejar los valores binarios con desplazamiento de varias maneras. Los datos pueden tratarse simplemente como enteros sin signo, lo que requiere que el programador maneje el desplazamiento cero en el software. Los datos también pueden convertirse al formato de entero con signo (que la CPU puede manejar de forma nativa) simplemente restando el desplazamiento cero. Como consecuencia de que el desplazamiento más común para una palabra de n bits es 2 n −1 , lo que implica que el primer bit está invertido con respecto al complemento a dos, no es necesario un paso de resta separado, sino que simplemente se puede invertir el primer bit. Esto a veces es una simplificación útil en el hardware y también puede ser conveniente en el software.
Tabla de desplazamiento binario para cuatro bits, con complemento a dos para comparación: [ 6 ]
El valor binario con desplazamiento se puede convertir a complemento a dos invirtiendo el bit más significativo. Por ejemplo, con valores de 8 bits, el valor binario con desplazamiento se puede convertir a complemento a dos mediante la operación XOR con 0x80. En hardware especializado, puede ser más sencillo aceptar el bit tal cual, pero aplicar su valor con el valor invertido.
Códigos relacionados
Véase también
Referencias
- 1 2 Chang, Angela; Chen, Yen; Delmas, Patrice (2006-03-07). "2.5.2: Representación de datos: Representación binaria con desplazamiento (Exceso-K)". COMPSCI 210S1T 2006 (PDF) . Departamento de Ciencias de la Computación, Universidad de Auckland , Nueva Zelanda. pág. 18. Recuperado el 2016-02-04 .
- ^ Dokter , Folkert ; Steinhauer, Jürgen (18 de junio de 1973). Electrónica Digital . Biblioteca técnica Philips (PTL) / Macmillan Education (Reimpresión de la primera edición en inglés). Eindhoven, Países Bajos: The Macmillan Press Ltd. / Gloeilampenfabrieken de NV Philips . 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) (Nota: Esta edición se basa en una traducción del volumen I de la edición alemana de dos volúmenes).
- 1 2 3 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). vol. I (mejorada y ampliada 5ª ed.). Hamburgo, Alemania: Deutsche Philips GmbH . págs. 51, 53 y 54. ISBN 3-87145-272-6.(xii+327+3 páginas) (Nota: 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).
- ↑ Principios de funcionamiento del sistema IBM System/360, formulario A22-6821. Varias ediciones disponibles en la WWW.
- ↑ Departamento de Ingeniería Eléctrica e Informática, Universidad del Sureste de Massachusetts , North Dartmouth, MA, EE. UU. (1988). Chen, Chi-hau (ed.). Manual de procesamiento de señales . Nueva York, EE. UU.: Marcel Dekker, Inc. / CRC Press . ISBN 0-8247-7956-8. Consultado el 4 de febrero de 2016 .
- ↑ "Formatos de código binario para conversión de datos" (PDF) . Intersil Corporation (publicado en 2000). Mayo de 1997. AN9657.1 . Consultado el 4 de febrero de 2016 .
- ^ Morgenstern , Bodo (enero de 1997) [julio de 1992]. "10.5.3.5 Exceso de código electrónico" . Electrónica: Digitale Schaltungen und Systeme . Studium Technik (en alemán). vol. 3 (segunda ed. revisada). Friedrich Vieweg & 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)
- 1 2 3 4 5 6 7 8 Diamond, Joseph M. (abril de 1955) [1954-11-12]. "Comprobación de códigos para computadoras digitales". Actas del IRE . Correspondencia. 43 (4). Nueva York, EE. UU.: 483–490 [487–488]. doi : 10.1109/JRPROC.1955.277858 . eISSN 2162-6634 . ISSN 0096-8390 . (2 páginas) (Nota: Los resultados que se presentan en este informe se basan en un estudio anterior realizado por Joseph M. Diamond y Morris Plotkin en la Escuela de Ingeniería Moore de la Universidad de Pensilvania , entre 1950 y 1951, bajo contrato con la empresa Burroughs Adding Machine Co. )
- ^ Desnudo, 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 . Kleine Mitteilungen (en alemán). 39 ( 5– 6): 429. Bibcode : 1959ZaMM...39..249N . doi : 10.1002/zamm.19590390511 .(1 página)
- 1 2 Stibitz, George Robert (1954-02-09) [1941-04-19]. "Computadora compleja" . Patente US2668661A . Recuperado el 24-05-2020 .(102 páginas)
- ↑ Plotkin, Morris (septiembre de 1960). "Códigos binarios con distancia mínima especificada". IRE Transactions on Information Theory . IT-6 (4): 445–450 . doi : 10.1109/TIT.1960.1057584 . eISSN 2168-2712 . ISSN 0096-1000 . S2CID 40300278 . (Nota: También se publicó como Informe de la División de Investigación 51-20 de la Universidad de Pensilvania en enero de 1951).
- 1 2 3 4 5 Brown, David T. (septiembre de 1960). "Detección y corrección de errores en códigos binarios para operaciones aritméticas". IRE Transactions on Electronic Computers . EC-9 (3): 333–337 . doi : 10.1109/TEC.1960.5219855 . ISSN 0367-9950 . S2CID 28263032 .
- 1 2 3 4 5 Peterson, William Wesley ; Weldon, Jr., Edward J. (1972) [febrero de 1971, 1961]. "15.3 Códigos aritméticos / 15.6 Códigos AN + B autocomplementarios ". Escrito en Honolulu, Hawái. Códigos correctores de errores (2.ª ed.). Cambridge, Massachusetts, EE. UU.: Instituto Tecnológico 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)
Lecturas adicionales
- 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. pp. 91, 137. ISBN 0-333-26397-9[
…] Utilizamos un valor de exponente desplazado 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 debería usarse, puesto que CDC y otros lo utilizan para la mantisa . También se le conoce como representación de «exceso -», donde, por ejemplo, - es 64 para un exponente de 7 bits (2⁷ − 1 = 64). […]
- Savard, John JG (2018) [2006]. "Representaciones decimales" . quadibloc . Archivado del original el 16 de julio de 2018. Recuperado el 16 de julio de 2018 .(Nota: Se mencionan los excesos 3, 6, 11 y 123).
- Savard, John JG (2018) [2007]. "Codificación Chen-Ho y decimal densamente empaquetado" . quadibloc . Archivado del original el 3 de julio de 2018. Recuperado el 16 de julio de 2018 .(Nota: Se mencionan los excesos de 25 y 250).
- Savard, John JG (2018) [2005]. "Formatos de punto flotante" . quadibloc . Archivado del original el 3 de julio de 2018. Recuperado el 16 de julio de 2018 .(Nota: Se mencionan los excesos 32, 64, 128, 256, 976, 1023, 1024, 2048 y 16384).
- Savard, John JG (2018) [2005]. "Aritmética computacional" . quadibloc . Archivado del original el 16 de julio de 2018. Recuperado el 16 de julio de 2018 .(Nota: Se mencionan los excesos 64, 500, 512 y 1024).
- Sistemas numéricos
- Aritmética binaria