Кодирование десятичных чисел
При использовании в ЦВМ десятичные числа кодируются группой двоичных разрядов. Учитывая, что log210≈3, 32, (3.31) для представления одной десятичной цифры требуется не менее четырех двоичных разрядов. Соответствие между десятичной цифрой и ее двоичным представлением называют двоичным кодом десятичной цифры. Наиболее естественным представляется кодирование десятичных цифр позиционными двоичными кодами с естественными весами разрядов. Такой код принято называть кодом "8421". Ясно, что это далеко не единственный способ кодирования десятичных цифр. Используя только четырехразрядные двоичные коды, следует выбрать 10 из шестнадцати возможных комбинаций для представления цифр. Количество способов, которыми могут быть выбраны 10 комбинаций из 16, равно числу сочетаний из 16 по 10: После того как выбор комбинаций сделан, можно Р10=10! способами сопоставить комбинацию десятичной цифре. Таким образом, общее число различных четырехразрядных кодов десятичных цифр составляет Практически лишь 5 — 6 различных кодов используют в ЦВМ для представления десятичных цифр. Основной недостаток кодирования десятичных цифр в коде "8421" состоит в несоответствии веса десятичного и шестнадцатеричного переносов. Действительно, перенос из тетрады шестнадцатеричной цифры имеет вес 16, а десятичный перенос — 10. Для устранения этого противоречия можно выбрать другие способы кодирования десятичных цифр. Например, код "8421+3" (иногда его называют код с избытком три) позволяет при сложении получать сумму "с избытком 6", при этом вес переноса соответствует десятичному. Можно подобрать такие веса двоичных разрядов при кодировании десятичных цифр, чтобы их сумма равнялась 10, Например, код "5211" обладает именно таким свойством. При этом, однако, нарушается свойство функциональности соответствия десятичных цифр и их двоичного представления. Например, цифра 7 может быть представлена как 1100 или как 1011. Для преодоления этого недостатка достаточно договориться, чтобы в подобных ситуациях всегда сначала заполнялись младшие разряды кода. (Страница78) В табл. 3.5 приведены упомянутые двоичные коды десятичных цифр. Таблица 3.5. Двоичные коды десятичных цифр
Арифметические операции над десятичными числами можно выполнять как на специальных десятичных сумматорах (в этом случае можно применять любую кодировку десятичных цифр), так и на обычных двоичных сумматорах. В последнем случае десятичные числа обрабатываются по правилам двоичной арифметики, и десятичный результат операции, естественно, нуждается в коррекции. В этом случае сложность коррекции и длительность ее реализации существенно зависят от выбранного кода.
|