En computación , Formato Binario de Microsoft (MBF) es un formato de punto flotante números que se utilizan en Microsoft 's BASIC productos de lenguaje, incluyendo MBASIC , GW-BASIC y QuickBASIC anterior a la versión 4.00. [1] [2] [3] [4] [5] [6] [7]
Hay dos versiones principales del formato. La versión original fue diseñada para sistemas con restricciones de memoria y números almacenados en 32 bits (4 bytes), con una mantisa de 23 bits , un signo de 1 bit y un exponente de 8 bits . Extended (12k) BASIC incluía un tipo de doble precisión con 64 bits.
Durante el período en que se transfirió de la plataforma Intel 8080 al procesador MOS 6502 , las computadoras comenzaron a distribuirse con más memoria como característica estándar. Esta versión se ofreció con el formato original de 32 bits o un formato opcional ampliado de 40 bits (5 bytes). El formato de 40 bits fue utilizado por la mayoría de las computadoras domésticas de las décadas de 1970 y 1980. Estas dos versiones a veces se conocen como "6 dígitos" y "9 dígitos", respectivamente. [8]
En PC con procesador x86 , QuickBASIC , antes de la versión 4, reintrodujo el formato de doble precisión usando una mantisa de 55 bits en un formato de 64 bits (8 bytes). MBF se abandonó durante el cambio a QuickBASIC 4, que utilizaba el formato estándar IEEE 754 , introducido unos años antes.
Historia
Bill Gates y Paul Allen estaban trabajando en Altair BASIC en 1975. Estaban desarrollando el software en la Universidad de Harvard en un DEC PDP-10 ejecutando su emulador Altair . [9] Una cosa que les faltaba era código para manejar números de punto flotante, requerido para soportar cálculos con números muy grandes y muy pequeños, [9] que sería particularmente útil para la ciencia y la ingeniería. [10] [11] Uno de los usos propuestos del Altair fue como calculadora científica. [12]
En una cena en Currier House , una residencia de estudiantes en Harvard, Gates y Allen se quejaron con sus compañeros de cena de que tenían que escribir este código [9] y uno de ellos, Monte Davidoff , les dijo que había escrito rutinas de punto flotante. antes y convenció a Gates y Allen de que era capaz de escribir el código de punto flotante BÁSICO de Altair. [9] En ese momento, si bien IBM había introducido sus propios programas, no existía un estándar para los números de punto flotante, por lo que Davidoff tuvo que idear los suyos propios. Decidió que 32 bits permitirían suficiente rango y precisión. [13] Cuando Allen tuvo que demostrarlo a MITS , fue la primera vez que se ejecutó en un Altair real. [14] Pero funcionó, y cuando ingresó 'PRINT 2 + 2', la rutina de suma de Davidoff dio la respuesta correcta. [9]
Se pensaba que el código fuente de Altair BASIC se había perdido en la historia, pero resurgió en 2000. Había estado detrás del archivador del antiguo tutor y decano de Gates, Harry Lewis , quien lo redescubrió. [15] [16] Un comentario en la fuente acredita a Davidoff como el autor del paquete matemático de Altair BASIC. [15] [16]
Altair BASIC despegó, y pronto la mayoría de las primeras computadoras domésticas ejecutaban alguna forma de Microsoft BASIC. [17] [18] El puerto BASIC para la CPU 6502 , como el que se usa en el Commodore PET , ocupaba más espacio debido a la menor densidad de código del 6502. Debido a esto, es probable que no quepa en un solo chip ROM juntos. con el código de entrada y salida específico de la máquina. Como era necesario un chip adicional, se disponía de espacio adicional, y esto se utilizó en parte para extender el formato de punto flotante de 32 a 40 bits. [8] Este formato extendido no solo fue proporcionado por Commodore BASIC 1 & 2, sino que también fue compatible con Applesoft BASIC I & II desde la versión 1.1 (1977), KIM-1 BASIC desde la versión 1.1a (1977) y MicroTAN BASIC desde versión 2b (1980). [8] Poco tiempo después, los puertos Z80 , como el Nivel II BASIC para el TRS-80 (1978), introdujeron el formato de doble precisión de 64 bits como un tipo de datos separado de los de 32 bits de precisión simple. [19] [20] [21] Microsoft utilizó los mismos formatos de punto flotante en su implementación de Fortran [22] y para su ensamblador de macros MASM , [23] aunque su hoja de cálculo Multiplan [24] [25] y su implementación COBOL utilizaron coma flotante decimal codificada en binario (BCD). [26] Aun así, durante un tiempo MBF se convirtió en el formato de punto flotante de facto en las computadoras domésticas, hasta el punto en que la gente todavía encuentra ocasionalmente archivos heredados y formatos de archivo que lo usan. [27] [28] [29] [30] [31] [32]
En un desarrollo paralelo, Intel había comenzado el desarrollo de un coprocesador de punto flotante en 1976. [33] [34] William Morton Kahan , como consultor de Intel, sugirió que Intel usara el punto flotante de Digital Equipment Corporation (DEC ) VAX. El primer VAX, el VAX-11/780 acababa de salir a finales de 1977 y su punto flotante era muy apreciado. Los formatos de coma flotante de VAX se diferenciaban de MBF solo en que tenían el signo en el bit más significativo. [35] [36] Sin embargo, buscando comercializar su chip en el mercado más amplio posible, se le pidió a Kahan que elaborara especificaciones. [33] Cuando los rumores sobre el nuevo chip de Intel llegaron a sus competidores, comenzaron un esfuerzo de estandarización, llamado IEEE 754 , para evitar que Intel ganara demasiado terreno. Como un exponente de 8 bits no era lo suficientemente ancho para algunas operaciones deseadas para números de doble precisión, por ejemplo, para almacenar el producto de dos números de 32 bits, [1] la propuesta de Intel y una contrapropuesta de DEC utiliza 11 bits, como el formato de coma flotante de 60 bits probado en el tiempo del CDC 6600 de 1965. [34] [37] [38] La propuesta de Kahan también preveía infinitos, que son útiles cuando se trata de condiciones de división por cero; valores no numéricos, que son útiles cuando se trata de operaciones no válidas; números desnormales , que ayudan a mitigar los problemas causados por subdesbordamiento; [37] [39] [40] y un sesgo de exponente mejor equilibrado , que podría ayudar a evitar el desbordamiento y el subdesbordamiento al tomar el recíproco de un número. [41] [42]
Cuando se lanzó QuickBASIC 4.00 , [ ¿cuándo? ] el estándar IEEE 754 se había adoptado ampliamente; por ejemplo, se incorporó en el coprocesador 387 de Intel y en todos los procesadores x86 desde el 486 en adelante. Las versiones 4.0 y 4.5 de QuickBASIC usan variables de punto flotante IEEE 754 de forma predeterminada, pero (al menos en la versión 4.5) hay una opción de línea de comandos / MBF para el IDE y el compilador que cambia de números de punto flotante IEEE a MBF, para admite programas escritos anteriormente que se basan en detalles de los formatos de datos MBF. Visual Basic también usa el formato IEEE 754 en lugar de MBF.
Detalles técnicos
Los números MBF consisten en un exponente de base 2 de 8 bits , un bit de signo (mantisa positiva: s = 0; mantisa negativa: s = 1) y un 23-, [43] [8] 31- [8] o 55- bit [43] mantisa del significando . Siempre hay un bit 1 implícito a la izquierda de la mantisa explícita, y el punto de base se ubica antes de este bit asumido . El exponente está codificado con un sesgo de 128, de modo que los exponentes −127… −1 están representados por x = 1… 127 (01h… 7Fh), los exponentes 0… 127 están representados por x = 128… 255 (80h… FFh), con un caso especial para x = 0 (00h) que representa el número entero siendo cero.
El formato de doble precisión MBF proporciona menos escala que el formato IEEE 754 , y aunque el formato en sí proporciona casi un dígito decimal adicional de precisión, en la práctica los valores almacenados son menos precisos porque los cálculos IEEE utilizan resultados intermedios de 80 bits, y MBF no lo hace. 't. [1] [3] [43] [44] A diferencia del punto flotante IEEE, MBF no admite números desnormales , infinitos o NaN . [45]
Formato MBF de precisión simple (32 bits, "BÁSICO de 6 dígitos"): [43] [8]
Exponente | Firmar | Significativo |
---|---|---|
8 bits, bit 31-24 | 1 bit, bit 23 | 23 bits, bit 22-0 |
xxxxxxxx | s | mmmmmmmmmmmmmmmmmmmmmmm |
Formato MBF de precisión extendida (40 bits, "BÁSICO de 9 dígitos"): [8]
Exponente | Firmar | Significativo |
---|---|---|
8 bits, bit 39–32 | 1 bit, bit 31 | 31 bits, bit 30-0 |
xxxxxxxx | s | mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm |
Formato MBF de doble precisión (64 bits): [43] [1]
Exponente | Firmar | Significativo |
---|---|---|
8 bits, bit 63–56 | 1 bit, bit 55 | 55 bits, bit 54-0 |
xxxxxxxx | s | mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm |
Ejemplos de
- "10": [46] [8]
- Formato de 32 bits: 84 h, 20 h, 00 h, 00 h
- Formato de 40 bits: 84 h, 20 h, 00 h, 00 h, 00 h
- "2":
- Formato de 32 bits: 82h, 00h, 00h, 00h
- Formato de 40 bits: 82h, 00h, 00h, 00h, 00h
- "1": [46] [8]
- Formato de 32 bits: 81h, 00h, 00h, 00h
- Formato de 40 bits: 81h, 00h, 00h, 00h, 00h
- "0": [43]
- Formato de 32 bits: 00h, 00h, 00h, 00h (o 00h, xxh, xxh, xxh)
- Formato de 40 bits: 00h, 00h, 00h, 00h, 00h (o 00h, xxh, xxh, xxh, xxh)
- "0.5": [46] [8]
- Formato de 32 bits: 80h, 00h, 00h, 00h
- Formato de 40 bits: 80h, 00h, 00h, 00h, 00h
- "0.25": [47] [8]
- Formato de 32 bits: 7Fh, 00h, 00h, 00h
- Formato de 40 bits: 7Fh, 00h, 00h, 00h, 00h
- "-0,5": [46] [8]
- Formato de 32 bits: 80 h, 80 h, 00 h, 00 h
- Formato de 40 bits: 80h, 80h, 00h, 00h, 00h
- "sqrt (0.5)": [46] [8]
- Formato de 32 bits: 80 h, 35 h, 04 h, F3h
- Formato de 40 bits: 80 h, 35 h, 04 h, F3h, 34 h
- "sqrt (2)": [46] [8]
- Formato de 32 bits: 81 h, 35 h, 04 h, F3h
- Formato de 40 bits: 81 h, 35 h, 04 h, F3h, 34 h
- "en (2)": [46] [8]
- Formato de 32 bits: 80 h, 31 h, 72 h, 18 h
- Formato de 40 bits: 80 h, 31 h, 72 h, 17 h, F8h
- "log 2 (e)": [46] [8]
- Formato de 32 bits: 81h, 38h, AAh, 3Bh
- Formato de 40 bits: 81h, 38h, AAh, 3Bh, 29h
- "pi / 2": [47] [8]
- Formato de 32 bits: 81h, 49h, 0Fh, DBh
- Formato de 40 bits: 81h, 49h, 0Fh, DAh, A2h
- "2 * pi": [47] [8]
- Formato de 32 bits: 83h, 49h, 0Fh, DBh
- Formato de 40 bits: 83h, 49h, 0Fh, DAh, A2h
Ver también
- Punto flotante
- IEEE 754 - Estándar para aritmética de coma flotante binaria
- Punto flotante hexadecimal de IBM
Referencias
- ^ a b c d "IEEE frente al formato binario de Microsoft; Problemas de redondeo (completo)" . Soporte de Microsoft . Microsoft . 2006-11-21. ID de artículo KB35826, Q35826. Archivado desde el original el 28 de agosto de 2020 . Consultado el 24 de febrero de 2010 .
- ^ "Tutorial (completo) para comprender los errores de punto flotante IEEE" . Base de conocimientos . Microsoft . 2005-08-16. ID de artículo KB42980, Q42980. Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 .
- ^ a b "Convertir números de punto flotante de C ++ anteriores a IEEE-754 a / desde C #" . stackoverflow.com . 2010-04-21. Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 . (NB. La segunda referencia podría equivocarse al decir que QB 4.0 podría usar MBF internamente, pero solo usa IEEE. Solo tiene algunas funciones de conversión para convertir números de punto flotante IEEE en cadenas que contienen datos MBF, por ejemplo, MKDMBF $ además de MKD $ que simplemente copia los bytes del valor IEEE en una cadena).
- ^ "La documentación de MASM 6.1 señala que 5.1 fue la última versión de MASM compatible con MBF" (PDF) . people.sju.edu . Consultado el 2 de junio de 2016 .
- ^ Manual del usuario de GW-BASIC, Apéndice D.3 Llamadas a funciones de USR.
- ^ BASIC Segunda edición (mayo de 1982), IBM: Apéndice C-15 (NB. Este es el manual de BASICA).
- ^ "Rutas ROM (matemáticas enteras)" . Trs-80.com . Consultado el 2 de junio de 2016 .
- ^ a b c d e f g h i j k l m n o p q r Steil, Michael (20 de octubre de 2008). "Cree su propia versión de Microsoft BASIC para 6502" . pagetable.com. Archivado desde el original el 30 de mayo de 2016 . Consultado el 30 de mayo de 2016 .
- ^ a b c d e Isaacson, Walter (20 de septiembre de 2013). "Amanecer de una revolución" . Harvard Gazette . news.harvard.edu. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ Rall, Louis B. (1987). "Una introducción al lenguaje informático científico Pascal-SC" . Computadoras y Matemáticas con Aplicaciones . Matemáticas Centro de Investigación, Universidad de Wisconsin-Madison , Madison, Wisconsin: Pergamon Revistas Ltd . 14 (1): 53–69. doi : 10.1016 / 0898-1221 (87) 90181-7 . Archivado (PDF) desde el original el 28 de agosto de 2020 . Consultado el 28 de agosto de 2020 . (17 páginas)
- ^ Leung, K. Ming (3 de febrero de 2005) [2000]. "Números de punto flotante en computadoras digitales" (PDF) . cis.poly.edu . Departamento de Informática y Ciencias de la Información, Universidad Politécnica. Archivado (PDF) desde el original el 14 de diciembre de 2018 . Consultado el 2 de junio de 2016 .
- ^ Becraft, Michael B. (26 de agosto de 2014). Bill Gates: una biografía . ISBN 978-1-44083014-3. Consultado el 30 de mayo de 2016 .
- ^ "El paquete de matemáticas" . altairbasic.org . 2014. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 . (NB. Altair BASIC 3.2 (Edición 4K).)
- ^ Orlowski, Andrew (11 de mayo de 2001). "La leyenda de Microsoft Altair BASIC habla de Linux, CPRM y esa foto tan aterradora - Una entrevista muy rara con Monte Davidoff" . El registro . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ a b Orlowski, Andrew (13 de mayo de 2001). "Raiders of the Lost Altair Código fuente BÁSICO - Vinieron, vieron ... se desmontaron" . El registro . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ a b Griffiths, Ian (8 de mayo de 2000). "Búsqueda de la fuente sagrada - viaje de Ian a Harvard" . Archivado desde el original el 2 de enero de 2002 . Consultado el 30 de mayo de 2016 .
- ^ "Grandes personas responsables personalmente de hacer avanzar el arte de las primeras computadoras" . Oldcomputers.net . 2020-07-18. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ "Basic 7.0 para Windows" . comp.lang.basic.powerbasic.narkive.com . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ Manual de hardware de Radio Shack: Manual de referencia BÁSICO de nivel II (PDF) (1 ed.). Fort Worth, Texas: Radio Shack . 1978. Archivado (PDF) desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 . [1]
- ^ Manual de referencia BÁSICO de nivel II (PDF) . akhara.com . Radio Shack . 1979 . Consultado el 2 de junio de 2016 .
- ^ BASIC-80 (MBASIC) Manual de referencia (PDF) . Consultado el 30 de mayo de 2016 .
- ^ Manual de usuario de Microsoft FORTRAN-80 versión 3.4 (PDF) . textfiles.com . Noviembre de 1980. págs. 45, 55 . Consultado el 30 de mayo de 2016 .
- ^ Pätzold, Michael, ed. (Abril de 1993). "Zettelsammlung MS-DOS und AT" (en alemán). Gruppe Datenverarbeitung am MPI für Strömungsforschung Göttingen, Max-Planck-Institut. Archivado desde el original el 20 de febrero de 2005 . Consultado el 7 de octubre de 2015 .
- ^ "Manual de Tandy 200 Multiplan" (PDF) . classiccmp.org . Consultado el 2 de junio de 2016 .
- ^ Especificaciones deMicrosoft C Pcode , página 13. (NB. Multiplan no se compiló en código de máquina, sino en una especie de código de bytes que fue ejecutado por un intérprete, con el fin de hacer que Multiplan sea portátil a través del hardware muy variado de la época Este código de bytes distingue entre el formato de punto flotante específico de la máquina para calcular y un formato externo (estándar), que era decimal codificado en binario (BCD). Las instrucciones PACK y UNPACK convertidas entre los dos).
- ^ Microsoft COBOL-80 (PDF) . textfiles.com . 1978. págs. 26, 32 . Consultado el 30 de mayo de 2016 .
- ^ Lee, Patrick Y. "Diseño de archivo de paquete de correo QWK" (TXT) . textfiles.com . Consultado el 2 de junio de 2016 .
- ^ "Formato CSI Millennium (CSIM) con extensiones CSI Y2K" . csidata.com . Boca Raton, Florida: Commodity Systems, Inc. 1998-11-17. Archivado desde el original (TXT) el 5 de marzo de 2016 . Consultado el 2 de junio de 2016 .
[…] Este documento describe el formato de datos CompuTrac abandonado, que hasta hace poco era utilizado activamente por el software de gráficos MetaStock de Equis. […]
- ^ Billard, Russ (4 de mayo de 2016) [13 de julio de 2001]. "Conversión de formato binario de Microsoft a formato IEEE usando VB 6" . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ JerMyster (2 de julio de 2003). "¡Ayuda! Cualquiera sabe cómo convertir el antiguo valor M / S MBF de Qbasic a VB6" . Tek-Tips . Foro de Visual Basic (Clásico). Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
- ^ GL88. "Lectura de formato binario (QBasic) con C #" . Social.msdn.microsoft.com . Consultado el 30 de mayo de 2016 .
- ^ "Rmetrics - Lectura del formato de datos de MetaStock en R" . R.789695.n4.nabble.com. 2013-09-30 . Consultado el 30 de mayo de 2016 .
- ^ a b "Intel y el punto flotante: actualización de uno de los estándares más exitosos de la industria: la visión tecnológica para el estándar de punto flotante" (PDF) . Intel . 2016. Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 30 de mayo de 2016 . (11 páginas)
- ^ a b "Una entrevista con el anciano de Floating-Point" . cs.berkeley.edu. 1998-02-20 . Consultado el 30 de mayo de 2016 .
- ^ "Números de coma flotante VAX" . nssdc.gsfc.nasa.gov . Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 . (NB. El VAX-11/780 aún no implementó el formato "G". Aunque esto no es directamente evidente en las tablas porque las estructuras se han dividido en palabras de dos bytes, el orden de los bytes es en realidad el mismo que en CPU modernas. No hay suficiente espacio en el rango de exponentes para NaN, Infinity, infinitos o desnormales).
- ^ "VAX11 780" (PDF) . Ece.cmu.edu . Consultado el 2 de junio de 2016 .
- ^ a b "IEEE 754: una entrevista con William Kahan" (PDF) . dr-chuck.com . Consultado el 2 de junio de 2016 .
- ^ Thornton, James E. (1970). Escrito en el Laboratorio de Diseño Avanzado, Control Data Corporation. Diseño de una computadora: Los datos de control 6600 (PDF) (1 ed.). Glenview, Illinois: Scott, Foresman and Company . LCCN 74-96462 . Archivado (PDF) desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 . (1 + 13 + 181 + 2 + 2 páginas)
- ^ Kahan, William Morton . "¿Por qué necesitamos un estándar aritmético de punto flotante?" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
- ^ Kahan, William Morton ; Darcy, Joseph D. "Cómo el punto flotante de Java perjudica a todos en todas partes" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
- ^ Turner, Peter R. (21 de diciembre de 2013). Análisis numérico y procesamiento paralelo: conferencias impartidas en The Lancaster… . ISBN 978-3-66239812-8. Consultado el 30 de mayo de 2016 .
- ^ "Nombres para formatos de coma flotante estandarizados" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
- ^ a b c d e f Personal de Borland (2 de julio de 1998) [10 de marzo de 1994]. "Conversión entre formatos Microsoft Binary e IEEE" . Base de datos de información técnica (TI1431C.txt). Embarcadero USA / Inprise (originalmente: Borland ). ID 1400. Archivado desde el original el 20 de febrero de 2019 . Consultado el 30 de mayo de 2016 .
[…] _Fmsbintoieee (float * src4, float * dest4) […] Formato binario MS […] orden de bytes => m3 | m2 | m1 | exponente […] m1 es el byte más significativo => sbbb | bbbb […] m3 es el byte menos significativo […] m = byte de mantisa […] s = bit de signo […] b = bit […] MBF es sesgo 128 e IEEE tiene un sesgo 127. […] MBF coloca el punto decimal antes del bit asumido , mientras que IEEE coloca el punto decimal después del bit asumido. […] Ieee_exp = msbin [3] - 2; / * en realidad, msbin [3] -1-128 + 127 * / […] _dmsbintoieee (doble * src8, doble * dest8) […] Formato binario MS […] orden de bytes => m7 | m6 | m5 | m4 | m3 | m2 | m1 | exponente […] m1 es el byte más significativo => smmm | mmmm […] m7 es el byte menos significativo […] MBF es sesgo 128 e IEEE es sesgo 1023. […] MBF coloca el punto decimal antes del bit asumido, mientras IEEE coloca el punto decimal después del bit asumido. […] Ieee_exp = msbin [7] - 128 - 1 + 1023; […]
- ^ "Grupos de Google" . Groups.google.com . Consultado el 2 de junio de 2016 .
- ^ Bucknall, Julian M. (3 de noviembre de 2018) [23 de octubre de 2007]. "Comprensión de MBF de precisión simple" . boyet.com. Archivado desde el original el 20 de febrero de 2019 . Consultado el 30 de mayo de 2016 .
[…] IEEE 754 Formato único […] El exponente está sesgado por 127. Se supone que hay un bit antes del punto de base (por lo que la mantisa asumida es 1.ffff… donde f son los bits de fracción ) […] Formato binario de Microsoft (precisión simple) […] El exponente está sesgado por 128. Se supone que hay 1 bit después del punto de base (por lo que la mantisa supuesta es 0.1ffff… donde f son los bits de fracción) […] la mantisa IEEE es el doble de MBF mantisa. […] Para convertir de MBF a IEEE simple […] reste 2 del exponente (uno para el cambio de sesgo, uno para el factor de mantisa), y luego reorganice los bits de signo y exponente. La fracción no cambia. Para convertir de IEEE simple a MBF, […] agregue 2 al exponente (uno para el cambio de sesgo, uno para el factor de mantisa) y luego reorganice los bits de signo y exponente. La fracción no cambia. […]
- ^ a b c d e f g h Steil, Michael, ed. (20 de octubre de 2008). "msbasic / float.s" . MIST64 . Archivado desde el original el 28 de agosto de 2020 . Consultado el 28 de agosto de 2020 , a través de github.com. [2] (Nota: 6502 listados de desmontaje comentados, combinados de varias versiones de Microsoft BASIC para 6502 entre 1977 y 1982 para recrear copias exactas de bytes de las ROM originales para 10 máquinas diferentes de diferentes proveedores).
- ^ a b c Steil, Michael, ed. (20 de octubre de 2008). "msbasic / trig.s" . MIST64 . Archivado desde el original el 28 de agosto de 2020 . Consultado el 28 de agosto de 2020 , a través de github.com. [3] (Nota: 6502 listados de desmontaje comentados, combinados de varias versiones de Microsoft BASIC para 6502 entre 1977 y 1982 para recrear copias exactas de bytes de las ROM originales para 10 máquinas diferentes de diferentes proveedores).
enlaces externos
- Microsoft proporciona una biblioteca de vínculos dinámicos para Visual Basic de 16 bits que contiene funciones para convertir entre datos MBF e IEEE 754.
- Esta biblioteca incluye las funciones de conversión de MBF en Visual C (++) CRT de 16 bits.
- Estas funciones de conversión redondearán un número de doble precisión IEEE como ¾ ⋅ 2 −128 a cero en lugar de 2 −128 .
- No admiten en absoluto los desnormales : el número 2-128 de precisión simple IEEE o MBF se convertirá a cero, aunque se pueda representar en cualquier formato.
- Esta biblioteca solo está diseñada para su uso con Visual Basic; Se espera que los programas C (++) llamen directamente a las funciones CRT.