Boit_K__Cifrovaya_yelektronika_BookZZ_or g (773598), страница 35
Текст из файла (страница 35)
Отрицательные числа сразу распознать трудно. Найденное число — 9 = 10111 может также восприниматься как положительное число 23. Нужно производить распознавание числа. Возможный способ распознавания числа показан на рис. 8.9. Бросается в глаза, что столбец с разрядом 24 при положительных числах всегда содержит О, а при отрицательных числах всегда содержит 1. Рве. 8.Я. Распознавание положительных и Рис. 8.18. Двоично-десатичный код. отрицательных двоичных чисел. У отрицательных чисел наибольший разряд всегда равен 1, Наибольший разряд можно назвать знаковым разрядом.
Крайний левый разряд слева у положительных двоичных чисел равен О, у отрицательных двоичных чисел он равен 1. Компьютеры работают всегда с установленной разрядностью, например с б, 8,16 или 32 разрядами. Так что наибольший разряд всегда известен и может рассматриваться безошибочно как знаковый разряд.
8.3. Двоично-десятичный код (ВСО-числа) Двоично-десятичный код тесно связан с двоичной системой счисления. Сокращение ВСР происходит от английского обозначения «В1пагу Седей Оесппа1в». 8.3.1. Представление чисел в двоично-десятичном коде В двоично-десятичном коде каждое десятичное число представлено четырьмя бинарными разрядами, или 4 битами. Совокупность четырех битов называется тетрадей (по-гречески «группа из четырех»). Двоично-десятичный код представлен на рис. 8.10.
Каждая десятичная цифра представлена двоичным числом. Из 1б возможных тетрад используются только 10. Шесть тетрад могут быть не задействованы в двоичнодесятичном коде. Они называются псевдотетрады. Для каждой цифры десятичного числа используется одна тетрада. И-разрядное десятичное число представляется в двоично-десятичном коде п-твтрадами. (2! ° Г Р.Л д Пример г 3 9 ! ! О 010 О 011 10 01 Пример 8.3.2.
Сложение в ВСО-формате Сложение происходит по тому же принципу, как и для двоичных чисел. Оно не представляет проблем до тех пор, пока результат не попадает в область псевдотетрад. Пример 1 1 0 0 1 1 + 0 1 1 0 1 0 0 1 Если при сложении возникает псевдотетрада, значит, сумма больше, чем 9 и должна представляться двумя тетрадами. В этом случае следует применить корректирующее сложение. К псевдотетраде следует прибавить число б<„, = 0110„г Тогда получают две тетрады. Пример 1 1 1 0 0 1 + 0 0 1 1 1 1 0 0 0 0 0 1 2 1. Техрад 2. Тетрад 3. Тетрад 3 +б 9 9 + 3 12 ВЗ.Д й 01000 7 Вф Пример 1 1 1 0111 1001 7 +9 16 !ОООО 1О О О О + 0 1 1 0 ООО! 0110 1 6 В общем, действует правило: Если при сложении двух ВСО-чисел получается результат, равный или больший 10п„, то для коррекции к результату нужно прибавить число 0110„к Сложение ВСЮ-чисел, которые состоят из нескольких тетрад, происходит потетрадно справа налево.
Если при сложении двух тетрад возникает переход в 5-ом разряде, то он передается к наименьшему разряду следующей тетрады. Прибавление коррекции 0110 нужно предпринимать всегда, если результат сложения двух тетрад равен или больше 10. Пример 1 1 0 0 0 + 1 0 0 1 1 1 1 1 д— 0 1 1 1 78 + 0 1 1 0 + 69 1 1 1 0 147 1 1 1 1 1 1 0 0 0 0 1 0 ! ! 0+0 1 ! 0 000101000111 1 4 7 Если при добавлении коррекции 0110 к псевдотетраде происходит переход в 5-ом разряде, то он также добавляется к наименьшему разряду следующей тетрады. Пример 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 57 + 38 95 1 0 0 1 0 1 0 1 216 Глава 8.
Двоичные иоды и сисгнемы счисление 8.3.3. Вычитание е ВСО-формате Вычитание в двоично-десятичном коде производится прибавлением дополнения. Различают дополнение до девяти и дополнение до десяти. Дополнение до девяти Кгв ВСО-тетрады является дополнением тетрады до 1001гв епо! Пример Найдем дополнение до девяти от 0010. 1 0 О 1 9 -0 0 1 0 — 2 0 1 1 1 7 Дополнением до девяти а;е к 2пе будет 7„„= 0111„,.
Дополнение до десяти К„„ВСО-тетрады является дополнением тетрады до 1010гв = 10„г Дополнение до десяти на 1 больше, чем дополнение до девяти. Пример Найдем дополнение до десяти от 0010. 1 0 1 0 10 — 0 0 1 0 — 2 1 0 0 0 8 Дополнением до десяти Х„, к 2ое будет 8о„= 1000„,.
Если от ВСЗ-тетрады А надо отнять ВСЗ-тетраду В, то следует образовать дополнение до десяти ВСЗ-тетрады В и прибавить его к ВСЗ-тетраде А. Вычитание в двоично-десятичном коде сводится к сложению дополнения до десяти вычитаемого с уменываемым числом. Если получается псевдотетрада, то производится коррекция прибавлением 0110. Перенос в 5-ом разряде указывает на то, что результат является положительным числом. Перенос при определении значения результата не учитывается. Пример А 1 0 0 1 В -О 1 1 1 7 ч Кое от 7пе = 0111сл равен Зое = 0011от гмд~ р а ° жД 1 1 1ОО1 +ОО11 1 1 0 0 (Псевдотетр ада) 1 Коррекция 1 1 1 0 0 0 1 1 0 Результат: 1 0 0 1 0 2 Отрицательные ВСЮ-числа должны быть распознаваемы как отрицательные.
Если при вычитании получается отрицательное число, это должно быть сразу понятно. Нужен особенный признак Если при сложении точного дополнения до десяти с ВС0-тетрадей не образуется переноса в 5-й разряд, то результат является отрицательным числом. Пример А О 1 1 1  — 1 0 0 1 — 2 з Дополнением до десяти Кпе к 9„„будет 1<„, = 0001„г 0 1 1 1 В +О О 0 1 Ки 1 0 0 0 Отрицательное число Нет переноса в 5-й разряд.
Результат 1000 является отрицательным числом. Чтобы найти значение этого отрицательного числа, требуется обратное дополнение. Значение отрицательного числа является его дополнением до десяти. Значит, надо искать дополнение до десяти к 1000. Дополнением до десяти К„, к 1000гл = 8п„будет 0010о, = 2пвг Получается число 2. Следпоевательйо, результатом вычитана является — 2. 8.4. Другие тетрадные системы счисления Из множества тетрадных систем счисления, существующих наряду с двоич- но-десятичным кодом, рассмотрим только три самых лажных Другие тет- радные системы играют второстепенную роль и применяются только для специальных заданий.
(па г ар и 8.4.1. Код с избытком три В коде с избытком 3 не используются первые и последние три из 16 возможных тетрад. Эти шесть тетрад являются псевдотетрадами (рис. 8.11). Если рассматривать тетрады кода с избытком 3 в виде двоичных чисел, то видно, что их значения все время на три больше, чем значение соответствующей десятичной цифры. Десятичное число 4 представляется как 0111, то есть двоичным числом семь. Получается симметричный код (см.
рис. 8.11). Как и в двоично-десятичном коде каждая десятичная цифра представляется тетрадой. Симметрия Рве. а.11. Код р избытком 3. Пример 8 2 0 д 101101010011 Дополнение до 9 в коде с избытком 3 получается простым инвертированием. Пример Найти дополнение до 9 к 0111 = 4п„. 0 1 1 1 Инверсия 1 0 О 0 = 5(10) Если прибавить к дополнению до 9 единицу, то получается дополнение до десяти. Для сложения в коде с избытком 3 действуют следующие правила коррекции. Если при сложении двух тетрад не возникает переноса в 5-й разряд, то от результата следует отнять число 0011. Если при сложении двух тетрад возникает перенос в 5-й разряд, то к каждой тетраде результата следует прибавить число 0011.
Преимуществом кода с избытком 3 является отсутствие тетрады 0000. Так как часто принимаются соотношения 0 =" 0 В и 1 =" У то тетрада 0000 получается при исчезновении напряжения. Еще одним преимуществом является простое образование дополнения до 9. й4.ДВ р 3 219) Пример 1О1О 1О1О -О О1 1 1 1 =4 Пример Коррекция осуществляется посредством переноса в 5-й разряд. Эта операция легко осуществима в современной цифровой технике. 8.4.2. Код Айкена В коде Айкена используются первые и последние пять из 16 возможных тетрад. Псевдотетрады находятся в середине (рис.
8.12). Получается сим- метричный код, в котором легко получить дополнение до 9. Дополнение до Е К„, получается в коде Айкена простым инвертированием. Для отдельных позиций в пределах тетрады действуют следующие соотношения: Э С В А 2 4 2 1 Каждая десятичная цифра выражается тетрадой. п«вед Пример 1 9 О д О О О 1 1 1 1 1 1 1 1 О О О О 1 Рве.
8.12. Код Айкена. 1 О1ОО отто 1 + 3 4 1 О О 1 6 1 1 О О + 9 О1О1 15 ~2020 Г О. Р Ъ При сложении коррекция требуется только тогда, когда образуется псевдотетрада. Действуют следующие правила. Если при сложении двух тетрад в коде Айкена возникает псевдотетрада с переносом в 5-й разряд, то от результата следует отнять число 0110. Если при сложении двух тетрад в коде Айкена возникает псевдотетрада без переноса в 5-й разряд, то к результату следует прибавить число 0110.
Пример Результат Так как не образуется псевдотетрада, то коррекция не нужна. Пример Псевдотетрада: (без переноса в 5-ом разряде) 0 1 1 1 Коррекция + 0 1 1 0 1 1 0 1 =7 (Результат) Пример Псевдотетрадж (с переносом в 5-ом разряде) 1 0 0 0 0 1 ! 0 000П! 00!0 00 ю~1 1 0 1 0 О +1 1 1 1 0001)0 0 1 1 1 2 0 1 О 0 4 +0 0 1 1 +3 0 1 1 1 7 1 1 1 П1 1 0 1 1 5 +1 1 0 1 +7 1 0 0 0 12 4 + 9 13 ал. дну р а зф 8.4.3. Код Грея Код Грея не разрабатывался с точки зрения удобства для кодирования. Его особенностью является то, что при переходе от тетрады к тетраде всегда только один разряд меняется с 0 на 1 или от 1 на О.