Método para la representación de números con signo
El binario de desplazamiento , [1] también denominado 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 de desplazamiento, pero la mayoría de las veces el K para una palabra binaria de n bits 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 la consecuencia de 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 tiene como consecuencia que en una operación de comparación lógica se obtiene el mismo resultado que en una operación de comparación numérica en forma verdadera, mientras que en la notación de complemento a dos una comparación lógica concordará con una operación de comparación numérica en forma verdadera si y solo si los números que se comparan 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 sincrónica puede considerarse como un código binario reflejado (Gray) con exceso de 1 y desplazamiento 1 .
Un ejemplo destacado de notación de desplazamiento 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 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 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 codificó utilizando una notación de desplazamiento 129 ( exceso-129 ).
El estándar IEEE para aritmética de punto flotante (IEEE 754) utiliza la 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 utilizar "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 binario offset se utiliza a menudo en el procesamiento de señales digitales (DSP). La mayoría de los chips analógicos a digitales (A/D) y digitales a analógicos (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 sencilla para esto es polarizar las señales analógicas con un offset de CC igual a la mitad del rango del convertidor A/D y D/A. Los datos digitales resultantes terminan estando en formato binario offset. [5]
La mayoría de los chips de CPU de computadora estándar no pueden manejar el formato binario de desplazamiento directamente [ cita requerida ] . Los chips de CPU generalmente solo pueden manejar números enteros con y sin signo, y formatos de valores de punto flotante. Los valores binarios de desplazamiento se pueden manejar de varias maneras por estos chips de CPU. 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 al formato de número 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 en relación con el complemento a dos, no hay necesidad de un paso de resta separado, sino que simplemente se puede invertir el primer bit. Esto a veces es una simplificación útil en hardware y también puede ser conveniente en software.
Tabla de binarios desfasados para cuatro bits, con complemento a dos para comparación: [6]
El binario desfasado se puede convertir en complemento a dos invirtiendo el bit más significativo. Por ejemplo, con valores de 8 bits, el valor binario desfasado se puede combinar 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 con significado invertido.
Códigos relacionados
- [2] [3] [7]
Véase también
Referencias
- ^ ab Chang, Angela; Chen, Yen; Delmas, Patrice (7 de marzo de 2006). "2.5.2: Representación de datos: representación binaria desfasada (Excess-K)". COMPSCI 210S1T 2006 (PDF) . Departamento de Ciencias de la Computación, Universidad de Auckland , Nueva Zelanda. p. 18 . Consultado el 4 de febrero de 2016 .
- ^ abcDokter, 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. Recuperado el 1 de julio de 2018 .(270 páginas) (NB: Esto se basa en una traducción del volumen I de la edición alemana de dos volúmenes).
- ^ abc 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–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.)
- ^ Principios de funcionamiento del IBM System/360 Formulario A22-6821. Varias ediciones disponibles en la WWW. [ página necesaria ]
- ^ Departamento de Ciencias Eléctricas y Computacionales, Universidad del Sudeste 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. Recuperado 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 .
- ^ ab 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. Recuperado el 26 de mayo de 2020 .(xviii+393 páginas)
- ^ abcdefgh Diamond, Joseph M. (abril de 1955) [12 de noviembre de 1954]. "Checking Codes for Digital Computers". 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. 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 de la Universidad de Pensilvania , en 1950-1951, bajo contrato con Burroughs Adding Machine Co. )
- ^ ab 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)
- ^ ab Stibitz, George Robert (1954-02-09) [1941-04-19]. "Complex Computer". 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". IRE Transactions on Information Theory . 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.)
- ^ abcde Brown, David T. (septiembre de 1960). "Detección de errores y corrección de 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.
- ^ abcde 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, Hawaii. Códigos correctores de errores (2.ª ed.). Cambridge, Massachusetts, EE. UU.: Instituto Tecnológico de Massachusetts ( The MIT Press ). pp. 454–456, 460–461 [456, 461]. ISBN 0-262-16-039-0. Número de serie 76-122262.(xii+560+4 páginas)
Lectura adicional
- 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 . Macmillan Computer Science Series (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.
[…] [e]mpleamos un valor de exponente que se desplaza por 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 la han llamado característica, pero este término no debería utilizarse, ya que CDC y otros utilizan este término para la mantisa . También se la 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 2018-07-16 . Consultado el 2018-07-16 .(NB. Menciona Exceso-3, Exceso-6, Exceso-11, Exceso-123.)
- Savard, John JG (2018) [2007]. "Codificación Chen-Ho y decimales densamente empaquetados". quadibloc . Archivado desde el original el 2018-07-03 . Consultado el 2018-07-16 .(NB. Menciona Exceso-25, Exceso-250.)
- Savard, John JG (2018) [2005]. "Formatos de punto flotante". quadibloc . Archivado desde el original el 2018-07-03 . Consultado el 2018-07-16 .(NB. Menciones Exceso-32, Exceso-64, Exceso-128, Exceso-256, Exceso-976, Exceso-1023, Exceso-1024, Exceso-2048, Exceso-16384.)
- Savard, John JG (2018) [2005]. "Computer Arithmetic". quadibloc . Archivado desde el original el 2018-07-16 . Consultado el 2018-07-16 .(NB. Menciona Exceso-64, Exceso-500, Exceso-512, Exceso-1024.)