Из Википедии, свободной энциклопедии
  (Перенаправлено из 32-битного MBF )
Перейти к навигации Перейти к поиску

В вычислении , Microsoft двоичный формат (МБФ) представляет собой формат для чисел с плавающей точкой чисел , которая использовалась в Microsoft «ы BASIC продуктов языка, в том числе MBASIC , GW-BASIC и QuickBASIC перед версией 4.00. [1] [2] [3] [4] [5] [6] [7]

Есть две основные версии формата. Первоначальная версия была разработана для систем с ограничением памяти и сохраняла 32-битные числа (4 байта) с 23-битной мантиссой , 1-битным знаком и 8-битной экспонентой . Расширенный (12k) BASIC включал тип двойной точности с 64 битами.

В тот период, когда он переносился с платформы Intel 8080 на процессор MOS 6502 , компьютеры начали поставляться с большим объемом памяти в качестве стандартной функции. Эта версия предлагалась с исходным 32-битным форматом или дополнительным расширенным 40-битным (5-байтовым) форматом. 40-битный формат использовался на большинстве домашних компьютеров 1970-х и 1980-х годов. Эти две версии иногда называют «6-значным» и «9-значным» соответственно. [8]

На ПК с процессором x86 QuickBASIC до версии 4 повторно ввел формат двойной точности с использованием 55-битной мантиссы в 64-битном (8-байтовом) формате. От MBF отказались во время перехода на QuickBASIC 4, в котором использовался стандартный формат IEEE 754 , представленный несколькими годами ранее.

История [ править ]

Билл Гейтс и Пол Аллен работали над Altair BASIC в 1975 году. Они разрабатывали программное обеспечение в Гарвардском университете на DEC PDP-10 под управлением их эмулятора Altair . [9] Единственное, чего им не хватало, - это кода для обработки чисел с плавающей запятой, необходимого для поддержки вычислений с очень большими и очень маленькими числами, [9] который был бы особенно полезен для науки и техники. [10] [11] Одним из предложенных вариантов использования Альтаира был научный калькулятор. [12]

Передняя панель Altair 8800

На обеде в Currier House , жилом доме для студентов в Гарварде, Гейтс и Аллен пожаловались своим товарищам по обеду, что им пришлось написать этот код [9], и один из них, Монте Давидофф , сказал им, что он написал процедуры с плавающей запятой. ранее и убедил Гейтса и Аллена в том, что он способен написать код с плавающей запятой Altair BASIC. [9] В то время, когда IBM представила свои собственные программы, не было стандарта для чисел с плавающей запятой, поэтому Давидоффу пришлось придумать свой собственный. Он решил, что 32 бита обеспечат достаточный диапазон и точность. [13] Когда Аллену пришлось продемонстрировать его MITS , это был первый раз, когда он работал на реальном Altair. [14]Но это сработало, и когда он ввел «ПЕЧАТЬ 2 + 2», процедура добавления Давыдова дала правильный ответ. [9]

Исходный код Altair BASIC считался утерянным для истории, но вновь появился в 2000 году. Он находился за картотечкой бывшего наставника Гейтса и декана Гарри Льюиса , который заново открыл его. [15] [16] В комментарии к источнику Давидофф назван автором математического пакета Altair BASIC. [15] [16]

Система Radio Shack Tandy TRS-80 Model I

Альтаир БЕЙСИК стал популярным, и вскоре на большинстве первых домашних компьютеров была установлена ​​некоторая форма БЕЙСИКа от Майкрософт. [17] [18] Порт BASIC для ЦП 6502 , например, используемый в Commodore PET , занимал больше места из-за более низкой плотности кода 6502. Из-за этого он, скорее всего, не поместился бы в одной микросхеме ПЗУ вместе. с машинно-зависимым кодом ввода и вывода. Поскольку требовался дополнительный чип, было доступно дополнительное пространство, которое частично использовалось для расширения формата с плавающей запятой с 32 до 40 бит. [8] Этот расширенный формат был не только предоставлен Commodore BASIC 1 и 2, но также поддерживался Applesoft BASIC I и II, начиная с версии 1.1 (1977), KIM-1.BASIC с версии 1.1a (1977) и MicroTAN BASIC с версии 2b (1980). [8] Вскоре после этого в портах Z80 , таких как Level II BASIC для TRS-80 (1978), был введен 64-битный формат с двойной точностью как отдельный тип данных от 32-битного с одинарной точностью. [19] [20] [21] Microsoft использовала одни и те же форматы с плавающей запятой в своей реализации Fortran [22] и для своего макроассемблера MASM , [23] хотя в их электронной таблице Multiplan [24] [25] и в реализации на языке COBOL использовалисьдвоично-десятичный (BCD) с плавающей запятой. [26] Несмотря на это, на какое-то время MBF стал де-факто форматом с плавающей запятой на домашних компьютерах, до такой степени, что люди все еще иногда сталкиваются с устаревшими файлами и форматами файлов, использующими его. [27] [28] [29] [30] [31] [32]

VAX-11/780 миникомпьютер

Параллельно с этим Intel начала разработку сопроцессора с плавающей запятой в 1976 году. [33] [34] Уильям Мортон Кахан , в качестве консультанта Intel, предложил Intel использовать плавающую точку Digital Equipment Corporation (DEC). ) VAX. Первый VAX, VAX-11/780, вышел только в конце 1977 года, и его числа с плавающей запятой пользовались большим успехом. Форматы с плавающей запятой VAX отличались от MBF только тем, что у них был знак в старшем разряде. [35] [36] Однако, стремясь вывести свой чип на максимально широкий рынок, Кахана попросили составить спецификации. [33]Когда слухи о новом чипе Intel достигли своих конкурентов, они начали усилия по стандартизации, названные IEEE 754 , чтобы не дать Intel слишком сильно завоевать позиции. Поскольку 8-битная экспонента была недостаточно широкой для некоторых операций, требуемых для чисел с двойной точностью, например, для хранения произведения двух 32-битных чисел, [1] предложение Intel и встречное предложение от DEC использовали 11 бит, например проверенное время 60-бит с плавающей точкой в формате от CDC 6600 от 1965 г. [34] [37] [38] предложение Kahan также предусмотрены бесконечности, которые полезны при работе с разделением на ноль условий; нечисловые значения, которые полезны при работе с недопустимыми операциями; денормальные числа, которые помогают смягчить проблемы, вызванные недостаточным заполнением; [37] [39] [40] и более сбалансированное смещение экспоненты , которое могло бы помочь избежать переполнения и потери значимости при взятии обратной величины числа. [41] [42]

К тому времени , когда был выпущен QuickBASIC 4.00 , [ когда? ] стандарт IEEE 754 получил широкое распространение - например, он был включен в сопроцессор Intel 387 и каждый процессор x86 , начиная с 486 . QuickBASIC версий 4.0 и 4.5 по умолчанию использует переменные с плавающей запятой IEEE 754, но (по крайней мере, в версии 4.5) есть параметр командной строки / MBF для IDE и компилятора, который переключается с IEEE на числа с плавающей запятой MBF на поддерживают ранее написанные программы, которые полагаются на детали форматов данных MBF. Visual Basic также использует формат IEEE 754 вместо MBF.

Технические детали [ править ]

Числа MBF состоят из 8-битной экспоненты с основанием 2 , знакового бита (положительная мантисса: s = 0; отрицательная мантисса: s = 1) и 23-, [43] [8] 31- [8] или 55- бит [43] мантисса значения . Слева от явной мантиссы всегда подразумевается 1 бит, а точка счисления располагается перед этим предполагаемым битом . Показатель степени кодируется со смещением 128, так что показатели степени −127… −1 представлены как x = 1… 127 (01h… 7Fh), показатели степени 0… 127 представлены как x= 128… 255 (80h… FFh), с особым случаем для x = 0 (00h), представляющим все число, равное нулю.

Формат двойной точности MBF обеспечивает меньший масштаб, чем формат IEEE 754 , и, хотя сам формат обеспечивает почти одну дополнительную десятичную цифру точности, на практике сохраненные значения менее точны, поскольку в расчетах IEEE используются 80-битные промежуточные результаты, а в MBF нет. т. [1] [3] [43] [44] В отличие от операций с плавающей запятой IEEE, MBF не поддерживает денормальные числа , бесконечности или NaN . [45]

Формат MBF с одинарной точностью (32 бита, «6-значный BASIC»): [43] [8]

Формат расширенной точности MBF (40 бит, "9-значный BASIC"): [8]

Формат MBF с двойной точностью (64 бита): [43] [1]

Примеры [ править ]

  • «10»: [46] [8]
32-битный формат: 84h, 20h, 00h, 00h
40-битный формат: 84h, 20h, 00h, 00h, 00h
  • «2»:
32-битный формат: 82h, 00h, 00h, 00h
40-битный формат: 82h, 00h, 00h, 00h, 00h
  • «1»: [46] [8]
32-битный формат: 81h, 00h, 00h, 00h
40-битный формат: 81h, 00h, 00h, 00h, 00h
  • «0»: [43]
32-битный формат: 00h, 00h, 00h, 00h (или 00h, xxh, xxh, xxh)
40-битный формат: 00h, 00h, 00h, 00h, 00h (или 00h, xxh, xxh, xxh, xxh)
  • «0,5»: [46] [8]
32-битный формат: 80h, 00h, 00h, 00h
40-битный формат: 80h, 00h, 00h, 00h, 00h
  • «0,25»: [47] [8]
32-битный формат: 7Fh, 00h, 00h, 00h
40-битный формат: 7Fh, 00h, 00h, 00h, 00h
  • «-0,5»: [46] [8]
32-битный формат: 80h, 80h, 00h, 00h
40-битный формат: 80h, 80h, 00h, 00h, 00h
  • "sqrt (0,5)": [46] [8]
32-битный формат: 80h, 35h, 04h, F3h
40-битный формат: 80h, 35h, 04h, F3h, 34h
  • "sqrt (2)": [46] [8]
32-битный формат: 81h, 35h, 04h, F3h
40-битный формат: 81h, 35h, 04h, F3h, 34h
  • «ln (2)»: [46] [8]
32-битный формат: 80h, 31h, 72h, 18h
40-битный формат: 80h, 31h, 72h, 17h, F8h
  • "журнал 2 (е)": [46] [8]
32-битный формат: 81h, 38h, AAh, 3Bh
40-битный формат: 81h, 38h, AAh, 3Bh, 29h
  • «пи / 2»: [47] [8]
32-битный формат: 81h, 49h, 0Fh, DBh
40-битный формат: 81h, 49h, 0Fh, DAh, A2h
  • «2 * пи»: [47] [8]
32-битный формат: 83h, 49h, 0Fh, DBh
40-битный формат: 83h, 49h, 0Fh, DAh, A2h

См. Также [ править ]

  • Плавающая точка
  • IEEE 754 - Стандарт для двоичной арифметики с плавающей запятой
  • Шестнадцатеричное число с плавающей запятой IBM

Ссылки [ править ]

  1. ^ a b c d «IEEE против двоичного формата Microsoft; проблемы с округлением (полностью)» . Служба поддержки Microsoft . Microsoft . 21 ноября 2006 г. Идентификатор статьи KB35826, Q35826. Архивировано 28 августа 2020 года . Проверено 24 февраля 2010 .
  2. ^ "(Полное) Учебное пособие по пониманию ошибок с плавающей запятой IEEE" . База знаний . Microsoft . 2005-08-16. Идентификатор статьи KB42980, Q42980. Архивировано 28 августа 2020 года . Проверено 2 июня 2016 .
  3. ^ a b «Преобразование чисел с плавающей запятой до IEEE-754 C ++ в / из C #» . stackoverflow.com . 2010-04-21. Архивировано 28 августа 2020 года . Проверено 2 июня 2016 . (NB. Вторая ссылка может быть ошибочной, когда говорится, что QB 4.0 может использовать MBF внутри, но он использует только IEEE. Он просто имеет несколько функций преобразования для преобразования чисел с плавающей запятой IEEE в строки, содержащие данные MBF, например MKDMBF $ в дополнение к MKD $, который просто копирует байты значения IEEE в строку.)
  4. ^ «В документации MASM 6.1 отмечается, что 5.1 была последней версией MASM, поддерживающей MBF» (PDF) . people.sju.edu . Проверено 2 июня 2016 .
  5. ^ Руководство пользователя GW-BASIC, Приложение D.3 Вызов функций USR.
  6. ^ BASIC Второе издание (май 1982 г.), IBM: Приложение C-15 (NB. Это руководство BASICA).
  7. ^ «Маршруты ROM (целочисленная математика)» . Trs-80.com . Проверено 2 июня 2016 .
  8. ^ Б с д е е г ч я J к л м п о р д т Steil, Майкл (2008-10-20). «Создайте свою собственную версию Microsoft BASIC для 6502» . pagetable.com. Архивировано 30 мая 2016 года . Проверено 30 мая 2016 .
  9. ^ а б в г е Исааксон, Уолтер (2013-09-20). «Рассвет революции» . Harvard Gazette . news.harvard.edu. Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  10. Перейти ↑ Rall, Louis B. (1987). «Введение в язык научных вычислений Pascal-SC» . Компьютеры и математика с приложениями . Научно - исследовательский центр математики, Университет Висконсин-Мэдисон , Мэдисон, штат Висконсин: Пергамон Журналы Ltd . 14 (1): 53–69. DOI : 10.1016 / 0898-1221 (87) 90181-7 . Архивировано (PDF) из оригинала 28 августа 2020 года . Проверено 28 августа 2020 . (17 страниц)
  11. Перейти ↑ Leung, K. Ming (2005-02-03) [2000]. «Числа с плавающей запятой в цифровых компьютерах» (PDF) . cis.poly.edu . Кафедра компьютерных и информационных наук Политехнического университета. Архивировано (PDF) из оригинала на 2018-12-14 . Проверено 2 июня 2016 .
  12. ^ Becraft, Майкл Б. (2014-08-26). Билл Гейтс: биография . ISBN 978-1-44083014-3. Проверено 30 мая 2016 .
  13. ^ «Математический пакет» . altairbasic.org . 2014. Архивировано 28 августа 2020 года . Проверено 30 мая 2016 . (NB. Altair BASIC 3.2 (4K Edition).)
  14. ^ Орловский, Эндрю (2001-05-11). «Легенда Microsoft Altair BASIC рассказывает о Linux, CPRM и этой очень пугающей фотографии - очень редкое интервью с Монте Давидоффом» . Реестр . Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  15. ^ a b Орловский, Эндрю (13.05.2001). «В поисках утраченного Альтаира Исходный код BASIC - Пришли, увидели… разобрали» . Реестр . Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  16. ^ a b Гриффитс, Ян (2008-05-08). «Поиски Святого Источника - поездка Яна в Гарвард» . Архивировано из оригинала на 2002-01-02 . Проверено 30 мая 2016 .
  17. ^ «Великие люди, лично ответственные за продвижение искусства первых компьютеров» . Oldcomputers.net . 2020-07-18. Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  18. ^ «Базовая версия 7.0 для Windows» . comp.lang.basic.powerbasic.narkive.com . Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  19. ^ Руководство по оборудованию Radio Shack: Справочное руководство уровня II BASIC (PDF) (1-е изд.). Форт-Уэрт, Техас: Radio Shack . 1978. Архивировано (PDF) из оригинала 28 августа 2020 года . Проверено 30 мая 2016 . [1]
  20. ^ Справочное руководство уровня II BASIC (PDF) . akhara.com . Radio Shack . 1979 . Проверено 2 июня 2016 .
  21. ^ BASIC-80 (MBASIC) Справочное руководство (PDF) . Проверено 30 мая 2016 .
  22. ^ Руководство пользователя Microsoft FORTRAN-80 версии 3.4 (PDF) . textfiles.com . Ноябрь 1980. С. 45, 55 . Проверено 30 мая 2016 .
  23. ^ Пятцольд, Майкл, изд. (Апрель 1993 г.). "Zettelsammlung MS-DOS und AT" (на немецком языке). Gruppe Datenverarbeitung am MPI für Strömungsforschung Göttingen, Max-Planck-Institut. Архивировано из оригинала на 2005-02-20 . Проверено 7 октября 2015 .
  24. ^ "Tandy 200 Multiplan Manual" (PDF) . classiccmp.org . Проверено 2 июня 2016 .
  25. ^ СпецификацииMicrosoft C Pcode , стр. 13. (NB. Multiplan был скомпилирован не в машинный код, а в своего рода байт-код, который запускался интерпретатором, чтобы сделать Multiplan переносимым на различное оборудование того времени. Этот байт-код различает машинно-зависимый формат с плавающей запятой для вычисления и внешний (стандартный) формат, который был двоично-десятичным (BCD). Инструкции PACK и UNPACK конвертировались между ними.)
  26. ^ Microsoft COBOL-80 (PDF) . textfiles.com . 1978. С. 26, 32 . Проверено 30 мая 2016 .
  27. ^ Ли, Патрик Ю. «Макет файла почтового пакета QWK» (TXT) . textfiles.com . Проверено 2 июня 2016 .
  28. ^ "Формат CSI Millennium (CSIM) с расширениями CSI Y2K" . csidata.com . Бока-Ратон, Флорида: Commodity Systems, Inc., 1998-11-17. Архивировано из оригинального (TXT) 05 марта 2016 года . Проверено 2 июня 2016 . […] В этом документе описывается заброшенный формат данных CompuTrac, который до недавнего времени активно использовался графическим программным обеспечением MetaStock компании Equis. […]
  29. ^ Биллард, Расс (2016-05-04) [2001-07-13]. «Преобразование двоичного формата Microsoft в формат IEEE с использованием VB 6» . Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  30. ^ JerMyster (2003-07-02). «Помогите! Кто-нибудь знает, как преобразовать старое значение M / S MBF из Qbasic в VB6» . Тек-Типсы . Форум по Visual Basic (классический). Архивировано 28 августа 2020 года . Проверено 30 мая 2016 .
  31. ^ GL88. «Чтение двоичного формата (QBasic) с помощью C #» . Social.msdn.microsoft.com . Проверено 30 мая 2016 .
  32. ^ «Rmetrics - Чтение формата данных MetaStock в R» . R.789695.n4.nabble.com. 2013-09-30 . Проверено 30 мая 2016 .
  33. ^ a b «Intel и Floating-Point - Обновление одного из самых успешных отраслевых стандартов - Технологическое видение стандарта Floating-Point» (PDF) . Intel . 2016. Архивировано из оригинального (PDF) 04 марта 2016 года . Проверено 30 мая 2016 . (11 страниц)
  34. ^ а б «Интервью со Стариком Плавающей Точки» . cs.berkeley.edu. 1998-02-20 . Проверено 30 мая 2016 .
  35. ^ "Числа с плавающей запятой VAX" . nssdc.gsfc.nasa.gov . Архивировано 28 августа 2020 года . Проверено 2 июня 2016 . (NB. VAX-11/780 еще не реализовал формат "G". Хотя это не прямо видно из таблиц, потому что структуры были разделены на двухбайтовые слова, порядок байтов на самом деле такой же, как на современные процессоры. Недостаточно места в диапазоне экспонент для NaN, бесконечности, бесконечности или денормали.)
  36. ^ "VAX11 780" (PDF) . Ece.cmu.edu . Проверено 2 июня 2016 .
  37. ^ a b «IEEE 754: Интервью с Уильямом Каханом» (PDF) . dr-chuck.com . Проверено 2 июня 2016 .
  38. ^ Торнтон, Джеймс Э. (1970). Написано в Лаборатории перспективного дизайна, Control Data Corporation. Дизайн компьютера: данные управления 6600 (PDF) (1-е изд.). Гленвью, Иллинойс: Скотт, Foresman and Company . LCCN 74-96462 . Архивировано (PDF) из оригинала 28 августа 2020 года . Проверено 2 июня 2016 .   (1 + 13 + 181 + 2 + 2 страницы)
  39. ^ Кахан, Уильям Мортон . «Зачем нам нужен стандарт арифметики с плавающей запятой?» (PDF) . cs.berkeley.edu . Проверено 2 июня 2016 .
  40. ^ Кахан, Уильям Мортон ; Дарси, Джозеф Д. "Как плавающая точка в Java причиняет боль всем и везде" (PDF) . cs.berkeley.edu . Проверено 2 июня 2016 .
  41. ^ Тернер, Питер Р. (2013-12-21). Численный анализ и параллельная обработка: лекции, прочитанные в Ланкастере… . ISBN 978-3-66239812-8. Проверено 30 мая 2016 .
  42. ^ «Имена для стандартизированных форматов с плавающей запятой» (PDF) . cs.berkeley.edu . Проверено 2 июня 2016 .
  43. ^ a b c d e f Сотрудники Borland (1998-07-02) [1994-03-10]. «Преобразование между форматами Microsoft Binary и IEEE» . База данных технической информации (TI1431C.txt). Embarcadero USA / Inprise (первоначально: Borland ). ID 1400. Архивировано 20 февраля 2019 года . Проверено 30 мая 2016 . […] _Fmsbintoieee (float * src4, float * dest4) […] Двоичный формат MS […] порядок байтов => m3 | м2 | m1 | экспонента […] m1 - старший байт => sbbb | bbbb […] m3 - младший байт[…] M = байт мантиссы […] s = бит знака […] b = бит […] MBF имеет смещение 128, а IEEE смещение 127. […] MBF помещает десятичную точку перед предполагаемым битом , в то время как IEEE помещает десятичная точка после предполагаемого бита. […] Ieee_exp = msbin [3] - 2; / * на самом деле msbin [3] -1-128 + 127 * / […] _dmsbintoieee (double * src8, double * dest8) […] MS Binary Format […] порядок байтов => m7 | m6 | m5 | m4 | м3 | м2 | m1 | экспонента […] m1 - старший значащий байт => smmm | mmmm […] m7 - младший значащий байт […] MBF - смещение 128, а IEEE - смещение 1023. […] MBF помещает десятичную точку перед предполагаемым битом, в то время как IEEE помещает десятичную точку после предполагаемого бита. […] Ieee_exp = msbin [7] - 128 - 1 + 1023; […]
  44. ^ "Группы Google" . Groups.google.com . Проверено 2 июня 2016 .
  45. ^ Бакнэлл, Джулиан М. (2018-11-03) [2007-10-23]. «Понимание MBF одинарной точности» . boyet.com. Архивировано 20 февраля 2019 года . Проверено 30 мая 2016 . […] Единый формат IEEE 754 […] Показатель степени смещен на 127. Предполагается, что перед точкой счисления стоит 1 бит (так что предполагаемая мантисса равна 1.ffff ... где f - дробная частьбит) […] Двоичный формат Microsoft (одинарная точность) […] Показатель смещен на 128. Предполагается, что после точки счисления стоит 1 бит (так что предполагаемая мантисса равна 0,1ffff… где f - дробные биты) [… ] мантисса IEEE в два раза больше мантиссы MBF. […] Для преобразования из MBF в IEEE single […] вычесть 2 из экспоненты (один для изменения смещения, один для фактора мантиссы), а затем переставить биты знака и экспоненты. Дробь не меняется. Чтобы преобразовать одиночный стандарт IEEE в MBF, […] добавьте 2 к показателю степени (один для изменения смещения, один для коэффициента мантиссы), а затем переставьте биты знака и экспоненты. Дробь не меняется. […]
  46. ^ a b c d e f g h Steil, Michael, ed. (2008-10-20). "msbasic / float.s" . MIST64 . Архивировано 28 августа 2020 года . Проверено 28 августа 2020 г. - через github.com. [2] (NB. Прокомментированные списки дизассемблирования 6502, объединенные из нескольких версий Microsoft BASIC для 6502 между 1977 и 1982 гг., Чтобы воссоздать точные в байтах копии исходных ПЗУ для 10 разных машин от разных поставщиков.)
  47. ^ a b c Steil, Майкл, изд. (2008-10-20). "msbasic / trig.s" . MIST64 . Архивировано 28 августа 2020 года . Проверено 28 августа 2020 г. - через github.com. [3] (NB. Прокомментированные списки дизассемблирования 6502, объединенные из нескольких версий Microsoft BASIC для 6502 в период с 1977 по 1982 год, чтобы воссоздать точные по байтам копии исходных ПЗУ для 10 разных машин от разных поставщиков.)

Внешние ссылки [ править ]

  • Microsoft предоставляет библиотеку динамической компоновки для 16-битного Visual Basic, содержащую функции для преобразования между данными MBF и IEEE 754.
    • Эта библиотека включает функции преобразования MBF в 16-разрядную CRT Visual C (++).
    • Эти функции преобразования округляют число двойной точности IEEE, например ¾ ⋅ 2-128, до нуля, а не до 2 -128 .
    • Они вообще не поддерживают денормализацию : число 2 -128 с одинарной точностью IEEE или MBF будет преобразовано в ноль, даже если оно может быть представлено в любом формате.
    • Эта библиотека предназначена только для использования с Visual Basic; Ожидается, что программы на C (++) будут вызывать функции CRT напрямую.