Лекция № 15 (90-минут)

Тема: Представление числовых данных в коде BCD

Наиболее широкое применение в компьютерной технике получили двоично-десятичные системы счисления, в которых десятичные цифры записываются как четырехразрядные двоичные числа – двоичные тетрады.

Такое представление десятичных цифр называют также безизбыточным, поскольку для него необходимо минимальное количество двоичных разрядов.

Ограниченное применение находят и избыточные представления десятичных цифр с помощью пяти, шести и семи двоичных разрядов. В принципе, можно построить компьютерную систему, работающую при любом двоично-десятичном кодировании. Наличие разрешенных и запрещенных комбинаций является важным свойством BCD - кодов. В этом их отличие от обычных позиционных систем счисления.

Однако эмпирическим путем установлено, что для создания десятичных вычислительных средств наиболее целесообразно использовать двоично-десятичные коды (BCD или ДДК), обладающие свойствами взвешенности, упорядоченности, четности, дополнительности и единственности (так называемыми свойствами Рутисхаузера).

ДДК называется взвешенным, если каждому из (h) разрядов двоичного представления (ahah-1...a1) десятичной цифры (А) поставлены в соответствие веса – (gh, gh-1,…,g1) причем:

A=ahgh+ah-1gh-1+...+a1g1. (6.1)

где: А - десятичная цифра;

(ahah-1...a1) -) разряды двоичного представления;

(gh, gh-1,…,g1) – веса.

Свойство взвешенности упрощает выполнение логических и арифметических операций. ДДК, получаемые друг из друга простой перестановкой весов (gi), образуют кодовую группу. Для обозначения конкретных ДДК и кодовых групп часто используют последовательность их весов, записанную в порядке их убывания, например, "8,4,2,1", "4,4,2,1" и т.п.

Упорядоченность ДДК состоит в выполнении одного из условий:

0(2)<1(2)<2(2)<...<9(2). (6.2)

0(2)>1(2)>2(2)>...>9(2). (6.3)

для двоичных представлений (0(2),1(2),2(2),...,9(2)) десятичных цифр. Наличие упорядоченности ДДК необходимо для реализации логических операций.

Свойство четности должно проявляться в том, чтобы всем четным десятичным цифрам соответствовали либо только четные, либо только нечетные их двоичные представления. Аналогично, всем нечетным десятичным цифрам должны соответствовать либо только нечетные, либо только четные их двоичные представления. Это свойство необходимо для реализации операций умножения, деления, округления. Сущность свойства дополнительности («самодополняемость») ДДК заключается в следующем. Если сумма двух десятичных цифр равна (9), то переход от двоичного представления одной цифры к двоичному представлению другой цифры должен осуществляться путем инверсии двоичных разрядов.

Наличие этого свойства необходимо для упрощения алгебраических операций (операций с учетом знаков операндов) по правилам десятичной арифметики. ДДК обладает свойством единственности, если между десятичной цифрой и комбинацией двоичных цифр установлено взаимно однозначное соответствие. Это свойство упрощает и облегчает как процедуру представления в ДДК десятичных чисел (то есть, кодирование), так и процедуру распознавания десятичных чисел в ДДК (то есть, декодирование).

Особенностью взвешенных ДДК, имеющих только положительные веса, кроме ДДК группы "8,4,2,1", является отсутствие однозначного представления десятичных цифр. Это означает, что некоторые десятичные цифры могут быть записаны несколькими комбинациями двоичных цифр. Например, в ДДК "4,4,2,1" цифру 4 можно представить как 1000 и как 0100, цифру 5 – как 1001 и как 0101, цифру 6 – как 1010 и как 0110, цифру 7 – как 1011 и как 0111. Причиной этого служит неоднозначность решения уравнения (6.1) относительно переменных ai (i=l,h).

Однозначность представления десятичных цифр, состоящая в том, что каждой такой цифре соответствует только одна из 16 двоичных тетрад, обеспечивается в ДДК группы "8,4,2,1".

Кроме того, однозначность представления десятичных цифр может быть обеспечена в ДДК с отрицательными весами. В табл. 6.1 приведены все кодовые группы однозначных ДДК. Следует отметить, что однозначность не входит в перечень свойств тех ДДК, которые наиболее целесообразно использовать для построения десятичных компьютерных систем.

Таблица 6.1 – Кодовые группы однозначных ДДК

«8,4,2,1» «8,-4,2,1» «8,-6,4,1» «8,-4,3,2» «8,-5,4,2»
«8,4,2,-1» «8,4,3,-2» «8,-6,5,3» «7,-6,5,3» «8,-4,-2,1»
«8,4,-2,1» «8,6,-4,1» «8,4,-3,2» «8,-4,2,-1» «8,5,-4,2»
«8,-4,3,-2» «7,6,-5,3» «8,4,-3,-2» «8,5,-4,-2» «8,6,-4,-1»
«8,7,-4,-2»        

В этом перечне ему соответствует более слабое свойство единственности. Это свойство для неоднозначных ДДК может быть обеспечено выбором одной и исключением из ДДК избыточных (хотя, в принципе, правильных) двоичных представлений десятичных цифр. В этом отношении свойство единственности ДДК не эквивалентно свойству однозначности систем счисления, так как единственность ДДК можно обеспечить искусственно, а однозначность должна быть присуща счислению «органически». Существует 86 кодовых групп безизбыточных ДДК, обладающих свойствами взвешенности и единственности. Среди них есть ДДК, отрицательными весами, например, "8,4,2,1", "8,4,2,-1", "6,3,-1,-1". Свойством дополнительности обладают все взвешенные ДДК с положительными весами, у которых сумма весов равна (9). Существуют четыре кодовых группы взвешенных ДДК, обладающих также и свойствами единственности и дополнительности, с именно: "5,2,1,1", "4,3,1,1", "4,2,2,1", "3,3,2,1". Среди взвешенных ДДК с отрицательными весами свойствами единственности и дополнительности обладают ДДК из 19 кодовых групп, перечисленных в табл. 6.2.

Таблица 6.2 – Кодовые группы ДДК с отрицательными весами, обладающие свойствами единственности, дополнительности и взвешенности

«6,3,1,-1» «7,3,1,-2» «6,4,1,-2» «6,5,1,-3» «7,5,1,-4»
«6,2,2,-1» «5,3,2,-1» «6,3,2,-2» «8,3,2,-4» «4,4,2,-1»
«6,4,2,-3» «8,4,2,-5» «6,5,2,-4» «4,4,3,-2» «5,4,3,-3»
«8,4,3,-6» «7,5,3,-6» «8,4,-2,-1» «8,6,-1,-4»  

Упорядоченность присуща лишь ДДК, не имеющим отрицательных весов. Одновременно свойствами единственности, упорядоченности, дополнительности и взвешенности обладают ДДК кодовых групп "5,2,1,1", "4,3,1,1", "3,3,2,1","4,2,2,1". Всеми пятью свойствами обладают ДДК кодовой группы "4,2,2,1", называемые также кодами Эмери ("2,4,2,1" – код Айкена).

Недостатком ДДК этой кодовой группы является искусственный порядок весов, что затрудняет выполнение арифметических операций.

Наиболее распространенным в компьютерных системах является ДДК "8,4,2,1", который называется также кодом прямого замещения. Этот ДДК получают путем записи десятичных цифр в двоичной позиционной однородной системе счисления с естественным порядком весов. Он обладает всеми перечисленными выше свойствами ДДК, кроме свойства дополнительности. Этим обусловлен ряд неудобств при реализации операций алгебраического сложения в таком ДДК из-за трудностей формирования переносов из младшей тетрады в старшую. Достоинством ДДК "8,4,2,1" следует считать простоту и удобство перевода чисел из десятичной системы счисления в двоично-десятичную и обратный перевод. В каждом конкретном случае применение какого-либо ДДК обуславливается определенными его преимуществами по сравнению с другими типами ДДК. Например, код "7,4,2,1" применяется в электромеханических цифровых устройствах, где двоичной единице соответствует замкнутое состояние некоторой контактной пары и энергопотребляющее состояние соответствующей электрической цепи, а двоичному нулю - разомкнутое состояние контактной пары и не потребляющее энергии состояние электрической цепи. В этом случае каждое двоичное представление десятичной цифры содержит не более двух единиц, что обеспечивает минимальное и постоянное потребление энергии от источника питания. В ДДК "5,4,2,1", десятичные цифры можно рассматривать как двоично-пятеричные с кодированным представлением цифр. Три младших разряда в каждой тетраде изображают одну пятеричную цифру, с старшая цифра тетрады соответствует двоичному разряду. Этот ДДК имеет ряд достоинств при выполнении арифметических операций и переводе чисел из одной системы счисления в другую.

Для представления десятичных цифр могут быть использованы и невзвешенные ДДК. Например, код "с избытком 3" обладает свойством дополнительности и его удобно использовать для выполнения операции алгебраического сложения. Для записи десятичной цифры в ДДК "с избытком 3" необходимо двоичную тетраду этой цифры в ДДК "8,4,2,1" сложить с двоичным представлением числа (3).

ДДК "8,4,2,1" и коды с избытком (полученные из кода "8,4,2,1" по аналогии с кодом "с избытком 3") обладают еще одним важным свойством, не входящим в перечень Рутисхаузера, а именно: свойством аддитивности. Это свойство состоит в том, что ДДК суммы двух десятичных цифр равен двоичной сумме ДДК этих цифр или отличается от нее на некоторую константу. Это свойство позволяет свести операции десятичной арифметики в таких ДДК к выполнению операций по правилам двоичной арифметики.

Примерами избыточных ДДК, где каждая десятичная цифра кодируется пятью двоичными разрядами, являются ДДК "3А+2" и "2 из 5". Первый из этих ДДК обладает свойством дополнительности, а двоичные представления десятичных цифр получают в нем путем записи в двоичной системе с естественным порядком весов числа ЗА+2, где А – заданная десятичная цифра.

В ДДК "2 из 5" каждая десятичная цифра изображается пятью двоичными разрядами, из которых только два содержат единицы. Можно считать, что ДДК "2 из 5" получается из ДДК "7,4,2,1" путем добавления справа дополнительного разряда с весом, равным нулю. В этот разряд записывают такую цифру, чтобы общее число единиц было равно двум (за исключением десятичного нуля). ДДК "3А+2" и "2 из 5" используют обычно для передачи информации, поскольку они позволяют обнаруживать одиночные ошибки, возникающие в процессе такой передачи, сравнительно простыми средствами.

Рефлексный ДДК (код Грея, соседний код) обладает тем свойством, что двум соседним десятичным цифрам в нем соответствуют кодовые комбинации, отличающиеся только в одном двоичном разряде. Это свойство эффективно используется при построении измерительных преобразователей (датчиков) величины углового или линейного перемещения в цифровой эквивалент.

ДДК – (w,x,y,z,) - обладает следующим свойством. Для десятичной цифры (А) в таком ДДК перестановка ее двоичных разрядов вида (z,w,x,y) равна младшему десятичному разряду (в двоичном представлении) произведения (А) на (3); перестановка вида (x,y,z,w) равна младшему разряду произведения (А) на (7); перестановка (y,z,w,x) равна младшему разряду произведения (А) на(9).

Таким образом, младший разряд произведения любой заданной десятичной цифры на (3,7,9) может быть получен круговой перестановкой двоичных цифр. Очевидно, что это свойство может использоваться для частичного контроля правильности выполнения десятичного умножения.

6.1 Форматы числовых данных BCD - кодов

В современных компьютерных системах, обрабатывающих не только числовую информацию, но и текстовую (алфавитно-цифровую), отдельные символы чаще всего представляются словами длиной в один байт. Так как байт равен двум двоичным тетрадам, то в компьютерных системах с байтовым представлением информации можно записывать две десятичные цифры в один байт. Такую запись называют также упакованной записью или упакованным форматом записи десятичных цифр. Вместе с тем, можно записывать в один байт и по одной десятичной цифре, используя остальные четыре разряда для записи знаков и вспомогательных символов. Такую запись называют распакованной записью или распакованным форматом. В компьютерных системах широкого назначения обычно реализуются обе возможности записи десятичных цифр. Рассмотрим упакованный десятичный формат. Младшая цифра занимает в байте правую тетраду (биты 3-0), а старшая – левую (биты 7-4). Обе цифры представлены в коде «8,4,2,1». Многоразрядные упакованные десятичные числа занимают несколько байт. Для представления знака числа используют запрещенные кодовые комбинации: для «+» – C(16), для «–» – D(16). Код знака числа записывают в старшей тетраде старшего байта.

Распакованный формат называют символьным или ASCII - форматом.

Каждый байт содержит код, соответствующий десятичной цифре в кодовой таблице ASCII. В ней цифры имеют коды 30(16)-39(16). Таким образом, значение десятичной цифры представлено в младшей тетраде, а старшая тетрада является кодом «зоны» (3). Поэтому такой формат также называют зонированным. Для обозначения знака используют коды символов «+» и «–» из кодовой таблицы ASCII (2B(16) 2D(16) соответственно).



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: