Дж.Хиллбурн, П.Джулич Микро-ЭВМ и микропроцессоры (1979) (1092080), страница 9
Текст из файла (страница 9)
3. Каждая цифра числа умножается на основание в степени, значение которой определяется положением цифры. Точка в позиционном представлении чисел, называемая десятичной точкой, используется для отделения целой части числа (выражений, имеющих положительный показатель степени) от дробной части (выражений с отрицательным показателем степени). Поэтому можно записать, что А =)У,+А,, (3.1) где Л'т и Фе — соответственно целая и дробная части числа. В нашем примере Аг=374, а Же=0,29.
Представление числа подобным образом крайне полезно при переходах от одного основания к другому, которые описываются в последующих разделах. 3.2. ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ Наиболее простой позиционной системой счисления является двоичная. Как следует из названия, система имеет основание 2. Используются две десятичные цифры (два бита) — 0 и 1. Например, число 1011.1101 эквивалентно десятичному числу (1 х 2') = (О х 2') + (1 х 2') + (1 х 2') + (1 х 2 ') + +(1 х2-')+(Ох2-в)+(1 хЯ )=11.3!23„ Здесь подстрочные символы определяют основание числа; их часто ,опускают, когда известно, о каком основании идет речь. Необходимо отметить, что в приведенном примере точка в позиционном (двоичном) представлении числа отделяет его целую и дробную части, как и в случае десятичной точки в предыдущем разделе.
При позиционном принципе записи возможен непосредственный перевод чисел из двоичной системы счисления в десятичную. ПЕРЕВОД ЧИСЕЛ ИЗ ДЕСЯТИЧНОЙ СИСТЕМЪ| СЧИСЛЕНИЯ В ДВОИЧНУЮ Предположим, мы хотим выразить десятичное число в двоичной форме. Одним из методов выполнения такого преобразования является метод деления-умножения !1!. При использовании дан- Системы счисления и коды 61 ного метода целые числа переводятся в систему счисления с заданным основанием путем последовательного деления на это основание. В предыдущем примере целая часть числа (Л'т), равная 11ни преобразуется в двоичную форму следующим образом: 11: 2=5 Остаток 1 (Е5В) 5: 2=2 2: 2=1 1: 2=0 1 1 (М5В) Процесс деления продолжается до тех пор, пока не получится результат, равный О. Остатки от деления затем выписываются, начиная с последнего, или наибольшего значащего разряда (МВВ),' и заканчивая первым, или наименьшим значащим разрядолс (ЙВ). В данном случае т'~т = 11 то 1011о 0 5000 х 2 = 1.0000 = 0.0000 1 (ЕЬВ) Процесс последовательного умг1ожения продолжается до получения нулевого результата (что не всегда возможно) либо до заполнения соответствующего количества двоичных разрядов.
Цифры переноса затем выписывают, начиная с МВВ. В рассматриваемом примере Л'я=О 8125то=О 1101о Поэтому из уравнения (3.1) имеем Л'= 11 8125то= 1011 1101о ДВОИЧНЫИ СЧЕТ Счет в двоичной системе счисления менее сложен, чем в любой другой системе, поскольку здесь используются всего две цифры— О и 1. Если имеет место некоторая последовательность событий, то первому событию соответствует счет 1. Однако уже для второго собьи~я цифры 2 в двоичной системе не существует. В этом случае Перевод дробной части числа,в систему счисления с заданным основанием осуществляется путем выполнения ряда последовательных операций умножения на это основание.
В рассмотренном примере дробная часть числа (Лси), равная 0,825ни переводится в двоичную систему следующим образом: 0.8125 х 2 = 1.6250 = 0.6250 Перенос 1 (МВВ) 0.6250 х 2= 1.2500= 0.2500 1 0.2500 х 2 = О. 5000 = 0.5000 о 62 Глава 8 Оптилануиуий сигнал (У) Счел Вла дузВ з Счеаный Влад га 'гг гг Вз Рнс. 3.1. схема (а) и временная диаграмма (6) 4-разрядного двоичного счет- чика. происходит перенос в следующий разряд, что дает двоичное число 10з. Если перевести это число в десятичную систему счисления, то получим желаемый результат: 10з=(1х2')+ (О х2')=2ха В табл. 3.1 представлена, последовательность двоичных чисел, соответствующая десятичным числам от 0 до 9. Заметим, что перенос в старший разряд происходит при всех четных операциях.
При четвертой и восьмой операциях перенос производится из разряда единиц (2е) в разряды соответственно четверок (2з) и восьмерок (2з). Используя триггерные схемы, описанные в,предыдущей главе, можно построить двоичный счетчик. Для каждого разряда требуется один триггер. На рис. 3.1 показан 4-разрядный двоичный счетчик на Т-триггерах, срабатывающих по отрицательному фронту счетного сигнала (тактового импульса). Такой счетчик назы- Системы счисления и коды 63 Таблица Зя Двоичный счет Деситичвсе числа Диаичиае числа 2з 2и 2с 2с О 1 1 О 1 1 1 О О 1 О 1 1 1 О ! 1 1 1 О О О 1 О О 1 вается асинхронным, так как триггеры здесь не синхронизированы [2].
Если первоначально все триггеры установлены в состояние О, то при поступлении первого тактового импульса разряд 2о уста~навливается,в 1, все другие разряды сохраняют состояние О. Следующий тактовый импульс устанавливает в 0 первый триггер (Тр1). Поскольку последний является входом для Тр2, то разряд 2' устанавливается в состояние 1, а содержимое оставшихся.разрядов не меняется (состояние 0).
Временная диаграмма последовательности операций для разрядов 2о — 2' двоичного счетчика тактовых импульсов, показана на рис. 3.1. Заметим, что данный счетчик является также делителем частоты. Разряд 2о делит тактовую частоту на 2. Аналогичным образом разряды 2', 2' и 2',делят эту частоту соответственно на 4, 8 и 16. Двоичные счетчики, как синхронные, так и асинхронные, реализованы во всех семействах ИС. Четырехразрядные счетчики (например, ТТ(. 7493) и счетчики с количеством разрядов более 10 (как КМОП С114020) поставляются,в отдельном корпусе. ДВОИЧНОЕ СЛОЖЕНИЕ При двоичном сложении сумма цифр 0 и 1 получается в соответствии со следующими правилами: а) 0+0=0 б) 0+1=1 в) 1+1=0+Перенос г) 1+1+1=1+Перенос 64 Глава 3 Х 4 Я 2 1 1 1 10 + 1/00 /гацееевг евттеегге Велтрее елстгаемее /7еруее елагеемее Рис.
3.2. Пример двоичного сложении чисел. 11010 Оумме Чтобы проиллюстрировать эти правила, рассмотрим сложение чисел !110 и 1100 (рис. 3.2). Для столбца 1 справедливо 0+0=0 (правило «а»), для столбца 2 1+0=1 (правило «б») и для столбца 3 1+1=0+перенос (правило «в»); этот перенос показан над столбцом 4. Суммируя цифры столбца 4, ~получим 1+1+1=1+перенос (правило «г»). Единицу переноса располагаем над столбцом 5, в котором она является единственной цифрой, и поэтому сумма цифр столбца равна 1. Таблица 8.2 Таблица истинности дли суммы А ° В Сумма Перенос О О О 1 1 О 1 1 О О ! О 1 ° О 1 Перейдем теперь к рассмотрению суммы двоичных'1-разрядных чисел А и В.
Все возможные значения суммы А и В представлены в таблице истинности 3.2. Из этой таблицы, используя методику, описанную в гл. 2, находим, что Сумма=(АЛВ)~,/(А л,В) =(АспВ) Перенос=А/т,В Схема, реализующая указанные функции, показана на рис. 3.3. Используя данную схему, называемую полусумлсатором (НА), выполняют арифметическое сложение двух двоичных 1-разрядных чисел.
Системы счисления и коды 65 Е'уыыа Перенос а д Рис. З.З Схема полусумматора (а) и его обозначение (б). Пцо а о Рис. ЗА. Схема полного сумматора (а) и его обозначеняе (б). Из примера на сложение, приведенного на рис. 3.2, видно, что для суммирования' любого столбца без разряда переноса доста. точно иметь полусумматор. Однако в четвертом столбце имеется перенос. Поэтому для вычисления арифметической суммы двух разрядов А и В и разряда переноса С» необходимо какое-то другое устройство. Из таблицы истинности для этой суммы (табл.
3.3) можно видеть, что Сумма=(С,Р,АТх В)ч)(С»ЛАТх В) ч)(С»Р,АТх В)Ч(С»Р,АТх В) Перенос'=(С»рх АЛВ) ч)(С,, р,А(ч В) ч)(С»~,АУХ В)Ч(С»)ч Аут,В) Таблица ЗВ таблипа истинности для суммы А, В и С» с,.ли Сумма Перенос 00 0 00 1 01 0 0 1 1 10 0 10 1 11 0 11 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 66 Глава В 1 ГВВВ Рнс.
Зтй 4-раарндный полный сумматор. Данные выражения можно упростить, используя теоремы булевой алгебры (что является интересным упражнением для читателя). После упрощений получим, что Сумма =С,(Б(Ат!В) Перенос= [А р,В['~/[С; т"т(А-'= В) [ Схема, реализующая эти функции, показана на рис. 3.4. При помощи такой схемы, называемой полным сумматором (ЕА) или просто сумматором, получают арифметическую сумму трех двоичных 1-разрядных чисел. В предыдущем примере (рис. 3.2) мы складывали числа 1110 и 1100. Поскольку эти двоичные числа имеют четыре разряда, то для выполнения операции суммирования необходим 4-разрядный полный сумматор (рис.
3.5). Такой сумматор состоит из четырех отдельных сумматоров, на входах А и В которых для более наглядного рассмотрения работы схемы изображены числа 1110 и 1100. Входной сигнал переноса первого (правого) полного сумматора есть О. Значения разрядов переноса, генерируемых в каждом сумматоре, приведены в скобках около выходов С,. Следует отметить, что они те же, что и на рис.
3.2. Сумма чисел составлена переносом из старшего разряда и сигналами суммы отдельных сумматоров. Результат читается слева направо (от МЬВ к [.ЬВ) и равен !1010. Сумматоры выполняются на базе логических ИС любого семейства и являются основным блоком арифметическо-логических устройств (АЛУ) микропроцессоров. Системы счисления и коды 67 ДВОИЧНОЕ ВЫЧИТАНИЕ При двоичном вычитании разность цифр 0 н 1 получается в соответствии со следующими правилами; д) 0 — 0=0 е) 1 — 0=1 ж) 1 — 1=0 3.3. ВОСЬМЕРИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ Одна из основных систем счисления — восьмеричная система, которая часто используется при работе с микро-ЭВМ. Это система с основанием 8 и набором цифр от 0 до 7.
Чтобы проиллюстриро- (0) 1 0 1 1 0 1 100 уьтеньшаемое дычинтаемое Рис. 3.6. Пример двоичного вычита- ния чисел. 1010 Раоност: Зч з) 0 — 1=1 — заем единицы старшего разряда. Использование этих правил иллюстрируется на примере вычитания числа 1100 из !0110 (рис. З.б). Для столбца 1 0 — 0=0 (правило «д»), для столбца 2 (правило «е») 1 — 0=1, в третьем столбце 1 — 1=0 (праиило «ж»). Переходя к столбцу 4, имеем 0 — 1=1 — заем единицы старшего разряда (правило «з»), в результате чего единица в столбце б заменяется на 0 (показан в скобках).
Окончательный ответ произведенной операции есть 1010. Процедуру вычитания, приведенную на рис. З.б, можно реализовать при помощи схем, подобных полусумматору и сумматору (3). Такие схемы часто называют полуеычитателем и полным вычитателем или просто еычитателем. Однако в большинстве микро- ЭВМ операция, вычитания реализуется путем перехода к дополнительному коду числа со знаком, что позволяет упростить арифметическое устройство машины. Данный метод обсуждается а равд.3.5, где приведен пример логической схемы, необходимой для его реализации. 68 Глава 3 вать позиционную структуру данной системы, рассмотрим восьмеричное число 673.12в.
Эквивалентное ему десятичное число получается следующим образом: (6Х8 ) + (7Х8') + (ЗХ8 ) + (1Х8 ') + (2Х8 ') =443.156251в Как и в случае двоичной и десятичной систем счисления, точка при позиционном восьмеричном представлении числа отделяет его целую часть от дробной. ПЕРЕВОД ЧИСЕЛ ИЗ ДЕСЯТИЧНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ВОСЬМЕРИЧНУЮ ,Перевод чисел из десятичной системы в восьмеричную можно выполнить при помощи метода деления-умножения, описанного в разд.