Jump to content

Двоичное целое десятичное число

Стандарт IEEE 754-2008 включает форматы десятичных чисел с плавающей запятой, в которых мантисса и показатель степени (а также полезные данные NaN ) могут быть закодированы двумя способами, называемыми двоичным кодированием и десятичным кодированием . [1]

Оба формата разбивают число на знаковый бит s , показатель степени q (между q min и q max ) и p -значную цифру c (между 0 и 10). п −1). Закодированное значение: (-1) с ×10 д × с . В обоих форматах диапазон возможных значений идентичен, но они различаются способом мантиссы c представления . В десятичной кодировке он кодируется как серия p десятичных цифр (с использованием плотноупакованной десятичной кодировки (DPD)). требуется специализированное десятичное ALU Это делает преобразование в десятичную форму эффективным, но для обработки . В двоично-цело-десятичном кодировании ( BID ) оно кодируется как двоичное число.

Используя тот факт, что 2 10 = 1024 лишь немногим больше 10 3 = 1000, 3 n -значных десятичных чисел можно эффективно упаковать в 10 n двоичных битов. Однако форматы IEEE имеют мантиссы из 3 n +1 цифр, для представления которых обычно требуется 10 n +4 двоичных бита.

Это было бы неэффективно, поскольку необходимы только 10 из 16 возможных значений дополнительных четырех битов. Более эффективное кодирование можно разработать, используя тот факт, что диапазон экспоненты имеет форму 3×2. к , поэтому показатель степени никогда не начинается с 11. Используя кодировку Decimal32 (с мантиссой из 3*2+1 десятичных цифр) в качестве примера ( e означает показатель степени, m для мантиссы, т.е. мантиссы):

  • Если мантисса начинается с 0mmm, опуская начальный нулевой бит, мантисса помещается в 23 бита:
с 00ееееее (0)мммм мммммммммм ммммммммммс 01ееееее (0)ммм мммммммммм ммммммммммс 10ееееее (0)мм мммммммммм мммммммммм 
  • Если мантисса начинается с 100m, опуская первые 100 бит, мантисса помещается в 21 бит. Экспонента сдвигается на 2 бита, а 11 битовая пара показывает, что используется эта форма:
с 1100ееееее (100)м мммммммммм ммммммммммс 1101ееееее (100)м мммммммммм ммммммммммс 1110ееееее (100)м мммммммммм мммммммммм 
  • Бесконечный, тихий NaN и сигнальный NaN используют кодировки, начинающиеся с s 1111:
с 11110 xxxxxxxxxxxxxxxxxxxxxxxxxxxс 111110 xxxxxxxxxxxxxxxxxxxxxxxxxxxс 111111 xxxxxxxxxxxxxxxxxxxxxxxxxxx 

Биты, показанные в скобках, являются неявными : они не включены в 32 бита кодировки Decimal32, но подразумеваются двумя битами после знакового бита.

Кодировки Decimal64 и Decimal128 имеют поля экспоненты и мантиссы большего размера, но работают аналогичным образом.

Для кодировки Decimal128 113 бит мантиссы на самом деле достаточно для кодирования 34 десятичных цифр, и вторая форма фактически никогда не требуется.

Десятичное число с плавающей запятой можно закодировать несколькими способами, разные способы представляют разную точность, например 100,0 кодируется как 1000×10. −1 , а 100,00 кодируется как 10000×10 −2 . Набор возможных кодировок одного и того же числового значения называется когортой в стандарте . Если результат расчета неточен, наибольший объем значимых данных сохраняется путем выбора члена когорты с наибольшим целым числом, которое может быть сохранено в мантиссе вместе с требуемым показателем степени.

Диапазон

[ редактировать ]

Предлагаемый стандарт IEEE 754r ограничивает диапазон чисел мантиссой вида 10. н −1, где n — количество целых десятичных цифр, которые можно сохранить в доступных битах, чтобы десятичное округление выполнялось правильно.

32 бит 64 бит 128 бит
Биты хранения 32 64 128
Замыкающие значащие биты 20 50 110
Значимые биты 23/24 53/54 113
Значимые цифры 7 16 34
Комбинированные биты 11 13 17
Биты экспоненты 8 10 14
Предвзятость 101 398 6176
Стандартный эмакс 96 384 6144
Эмин по умолчанию −95 −383 −6143

Производительность

[ редактировать ]

Двоичное кодирование по своей сути менее эффективно для преобразований в или из данных в десятичной кодировке, таких как строки ( ASCII , Unicode и т. д.) и BCD . Поэтому двоичную кодировку лучше всего выбирать только в том случае, если данные являются двоичными, а не десятичными. IBM опубликовала некоторые непроверенные данные о производительности. [2]

См. также

[ редактировать ]
  1. ^ «ПРОЕКТ стандарта арифметики с плавающей запятой P754» (PDF) . 04.10.2006 . Проверено 1 июля 2007 г. [ постоянная мертвая ссылка ]
  2. ^ «Производительность десятичной библиотеки — 1.01» .

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 962c75f80d7f90af5be95c97f2c050e2__1700530740
URL1:https://arc.ask3.ru/arc/aa/96/e2/962c75f80d7f90af5be95c97f2c050e2.html
Заголовок, (Title) документа по адресу, URL1:
Binary integer decimal - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)