Jump to content

Плотно упакованная десятичная дробь

Плотно упакованные десятичные числа ( DPD ) — это эффективный метод двоичного кодирования десятичных цифр.

Традиционная система двоичного кодирования десятичных цифр, известная как двоично-десятичная (BCD), использует четыре бита для кодирования каждой цифры, что приводит к значительной потере полосы пропускания двоичных данных (поскольку четыре бита могут хранить 16 состояний и используются для хранения только 10), даже при использовании упакованного BCD . Плотно упакованный десятичный код — это более эффективный код, который упаковывает три цифры в десять битов с использованием схемы, которая позволяет сжимать или расширять до BCD всего лишь с двумя или тремя задержками аппаратного вентиля . [1]

Плотно упакованное десятичное кодирование является усовершенствованием кодирования Чена – Хо ; он дает те же преимущества в сжатии и скорости, но особое расположение используемых битов дает дополнительные преимущества:

  • Сжатие одной или двух цифр (в оптимальные четыре или семь бит соответственно) достигается как подмножество трехзначного кодирования. Это означает, что можно эффективно кодировать произвольное количество десятичных цифр (не только кратное трем цифрам). Например, 38 = 12 × 3 + 2 десятичные цифры можно закодировать в 12 × 10 + 7 = 127 бит, то есть 12 наборов по три десятичных цифры можно закодировать, используя 12 наборов по десять двоичных бит и оставшиеся две десятичные цифры. может быть закодирован с использованием дополнительных семи двоичных битов.
  • Упомянутая выше подмножества кодировки представляет собой просто крайние правые биты стандартной трехзначной кодировки; закодированное значение можно расширить, просто добавив ведущие 0 бит.
  • Все семибитные числа BCD (от 0 до 79) кодируются DPD одинаково. Это делает преобразование обычных небольших чисел тривиальным. (Это должно быть разбито на 80, поскольку для этого требуется восемь бит для BCD, но указанное выше свойство требует, чтобы кодировка DPD умещалась в семь бит.)
  • Младший бит каждой цифры копируется без изменений. Таким образом, нетривиальной частью кодирования можно считать преобразование трех цифр по основанию 5 в семь двоичных битов. Кроме того, с цифровыми логическими значениями (в которых каждая цифра равна 0 или 1) можно манипулировать напрямую, без необходимости какого-либо кодирования или декодирования.

В 1969 году Теодор М. Герц и в 1971 году Тянь Чи Чен ( 陳天機 ) и Ирвинг Цзе Хо ( 何宜慈 ) разработали префиксные коды без потерь (называемые кодировками Герца и Чена – Хо). [2] ), который упаковывал три десятичных цифры в десять двоичных битов, используя схему, которая позволяла сжимать или расширять до BCD всего лишь с двумя или тремя задержками на аппаратном обеспечении. Плотно упакованная десятичная дробь — это усовершенствованная версия, разработанная Майком Ф. Коулишоу в 2002 году. [1] который был включен в стандарт IEEE 754-2008. [3] и ISO/IEC/IEEE 60559:2011. [4] стандарты десятичных чисел с плавающей запятой .

Кодирование

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

Как и кодирование Чена-Хо, кодирование DPD классифицирует каждую десятичную цифру в один из двух диапазонов, в зависимости от старшего бита двоичной формы: «маленькие» цифры имеют значения от 0 до 7 (двоичные 0000–0111), а «большие» цифры , от 8 до 9 (двоичные 1000–1001). Если известно или указано, что цифра маленькая, для указания значения все равно требуются еще три бита. Если указано большое значение, для различения значений 8 и 9 требуется только один бит.

При кодировании старшие биты каждой из трех кодируемых цифр определяют один из восьми шаблонов кодирования для остальных битов в соответствии со следующей таблицей. В таблице показано, как при декодировании десять бит кодированной формы в столбцах с b9 по b0 копируются в три цифры от d2 до d0 , а остальные биты заполняются постоянными нулями или единицами.

Плотно упакованные правила десятичной кодировки [5]
Закодированное значение DPD Десятичные цифры
Кодовое пространство
(1024 штата)
б9 б8 b7 б6 б5 б4 б3 б2 б1 б0 d2 d1 д0 Закодированные значения Описание События
(1000 штатов)
50.0%
(512 штатов)
а б с д и ж 0 г час я 0 абв 0 защита 0 гхи (0–7) (0–7) (0–7) 3 маленькие цифры 51.2%
(512 штатов)
37.5%
(384 штата)
а б с д и ж 1 0 0 я 0 абв 0 защита 100 я (0–7) (0–7) (8–9) 2 маленькие цифры,
1 большая цифра
38.4%
(384 штата)
а б с г час ж 1 0 1 я 0 абв 100 ф 0 гхи (0–7) (8–9) (0–7)
г час с д и ж 1 1 0 я 100 с 0 защита 0 гхи (8–9) (0–7) (0–7)
9.375%
(96 штатов)
г час с 0 0 ж 1 1 1 я 100 с 100 ф 0 гхи (8–9) (8–9) (0–7) 1 маленькая цифра,
2 большие цифры
9.6%
(96 штатов)
д и с 0 1 ж 1 1 1 я 100 с 0 защита 100 я (8–9) (0–7) (8–9)
а б с 1 0 ж 1 1 1 я 0 абв 100 ф 100 я (0–7) (8–9) (8–9)
3.125%
(32 штата, 8 использовано)
х х с 1 1 ж 1 1 1 я 100 с 100 ф 100 я (8–9) (8–9) (8–9) 3 большие цифры,
b9, b8: плевать
0.8%
(8 штатов)

Биты b7, b4 и b0 ( c, f и i) передаются через кодировку без изменений и не влияют на значение других битов. Остальные семь битов можно считать семибитной кодировкой трех цифр по основанию 5.

Биты b8 и b9 не нужны и игнорируются при декодировании групп DPD с тремя большими цифрами (отмечены знаком «х» в последней строке таблицы выше), но при кодировании заполняются нулями.

Восемь десятичных значений, все цифры которых равны 8 или 9, имеют по четыре кодировки каждое.Биты, отмеченные x в таблице выше, игнорируются при вводе, но в вычисленных результатах всегда будут равны 0.(3 × 8 = 24 нестандартных кодировки заполняют пробел между 10 3 = 1000 и 2 10  − 1 = 1023.)

В этой таблице показаны некоторые типичные десятичные числа и их кодировки в BCD, Chen – Ho и плотно упакованном десятичном формате (DPD):

Десятичный двоично-десятичный код Чен-Хо ДПД
005 0000 0000 0101 000 000 0101 000 000 0101
009 0000 0000 1001 110 000 0001 000 000 1001
055 0000 0101 0101 000 010 1101 000 101 0101
079 0000 0111 1001 110 011 1001 000 111 1001
080 0000 1000 0000 101 000 0000 000 000 1010
099 0000 1001 1001 111 000 1001 000 101 1111
555 0101 0101 0101 010 110 1101 101 101 0101
999 1001 1001 1001 111 111 1001 001 111 1111

См. также

[ редактировать ]
  1. ^ Jump up to: а б Коулишоу, Майкл Фредерик (7 августа 2002 г.) [май 2002 г.]. «Плотно упакованное десятичное кодирование» . Труды IEE - Компьютеры и цифровая техника . 149 (3). Лондон, Великобритания: Институт инженеров-электриков : 102–104. дои : 10.1049/ip-cdt:20020407 . ISSN   1350-2387 . Архивировано из оригинала 20 мая 2017 г. Проверено 7 февраля 2016 г.
  2. ^ Коулишоу, Майкл Фредерик (2014) [июнь 2000 г.]. «Краткое описание кодирования десятичных данных Чен-Хо» . ИБМ . Архивировано из оригинала 24 сентября 2015 г. Проверено 7 февраля 2016 г.
  3. ^ Компьютерное общество IEEE (29 августа 2008 г.). Стандарт IEEE для арифметики с плавающей запятой . ИИЭЭ . дои : 10.1109/IEESTD.2008.4610935 . ISBN  978-0-7381-5753-5 . Стандарт IEEE 754-2008 . Проверено 8 февраля 2016 г.
  4. ^ ИСО/МЭК/ИИЭР 60559:2011 . 2011. Архивировано из оригинала 3 июня 2020 г. Проверено 8 февраля 2016 г.
  5. ^ Коулишоу, Майкл Фредерик (13 февраля 2007 г.) [03 октября 2000 г.]. «Краткое описание плотно упакованного десятичного кодирования» . ИБМ . Архивировано из оригинала 24 сентября 2015 г. Проверено 7 февраля 2016 г.

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

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