Конспекты лекций по цифровой электронике. Насыров И.А. - 5 стр.

UptoLike

Составители: 

9
четырех двоичных разрядов. Два таких кода даны в таблице 1.4. В коде «два из пяти»
для представления десятичных цифр используются только те комбинации, которые
содержат две 1 и три 0. В циклическом коде Джонсона переход к последующему
числу осуществляется путем последовательной замены 0 на 1, начиная справа, до
заполнения всех разрядов единицами, а затем заменой
1 на 0 до заполнения нулями.
При таком кодировании используется избыточное количество личных разрядов, т. е.
их требуется больше, чем при представлении в двоичной системе исчисления.
Применение таких кодов, использующих для представления десятичных цифр
избыточное число двоичных разрядов (более четырех), позволяет обнаруживать
некоторые ошибки, которые могут возникнуть при передаче чисел в результате
неисправностей или действия помех. Например, при использовании кода «два из
пяти» легко обнаруживаются ошибки типа ложного перехода 0 в 1 и наоборот, так
как при этом в двоичном 5-разрядном коде оказываются соответственно три или одна
1 вместо двух 1 при правильном функционировании. При использовании кода
Джонсона ошибочными являются комбинации, при которых один или несколько 0
оказываются между 1 или наоборот.
Таблица 1.4
Примеры избыточных двоично-десятичных кодов
Десятичное
число
Код «два из пяти» Циклический код Джонсона
А
10
a
4
a
3
a
2
a
1
a
0
b
4
b
3
b
2
b
1
b
0
0 0 0 0 1 1 0 0 0 0 0
1 0 0 1 0 1 0 0 0 0 1
2 0 0 1 1 0 0 0 0 1 1
3 0 1 0 0 1 0 0 1 1 1
4 0 1 0 1 0 0 1 1 1 1
5 0 1 1 0 0 1 1 1 1 1
6 1 0 0 0 1 1 1 1 1 0
7 1 0 0 1 0 1 1 1 0 0
8 1 0 1 0 0 1 1 0 0 0
9 1 1 0 0 0 1 0 0 0 0
1.3. Выполнение арифметических операций в цифровых системах
Арифметические операции над двоичными числами могут производиться по тем же
правилам, что и над десятичными. Однако с целью упрощения цифровых систем для
выполнения сложения, умножения, деления обычно применяются алгоритмы, не
используемые в обычной десятичной арифметике.
Выполнение операций сложения-вычитания над двоичными числами. Для
выполнения
операций сложения и вычитания в цифровой системе удобно
представлять отрицательные числа в обратном коде (табл. 1.2), а положительные - в
обычном коде. Вычитание заменяется сложением с переводом вычитаемого в
обратный код, если это число положительное, и в обычный код (т. е. перевод
2
B в
обратный код), если число отрицательное. Если результат операции получается
отрицательным (z
S
= 1), то он представлен в обратном коде, если положительным
(z
S
=0) — в обычном двоичном коде.
10
Пример 1.3. Сложить два числа A
10
= 12, B
10
= -4.
Решение:
Знак Число
z
A
0 01100 A
2
= A
10
= 12 (прямой код),
+
z
B
0
11011
2
B
= B
10
= -4 (обратный код),
10
00111
1 циклический перенос
z
S
0
01000 S
2
= S
10
= 8.
Пример 1.4. Вычесть из числа A
10
= -21 число B
10
= -14.
Решение:
Знак Число
z
A
1
01010
2
A
= A
10
= -21 (обратный код),
-
z
B
1
10001
2
B
= B
10
= -14 (обратный код),
1
01010
2
A
+
0
01110 B
2
(перевод
2
B в обратный код)
z
S
1
11000
2
S
= S
10
= -7.
Недостатком использования обратного кода является образование
циклического переноса, который приводит к повторению операции сложения, что
существенно увеличивает время выполнения действий. Поэтому во многих случаях
предпочтительнее использовать дополнительный код числа
2
~
A
(табл. 1.2). При
использовании дополнительного кода отпадает необходимость в циклическом
переносе и перенос, который может возникать в знаковом разряде числа, не
учитывается. В дополнительном коде представляются все отрицательные числа.
Вычитание заменяется сложением с переводом вычитаемого в дополнительный код,
если это число положительное, или переводом из дополнительного кода в обычный,
если вычитаемое
отрицательное. Если знаковый разряд результата z
S
= 1, то
полученное число отрицательное и представлено в дополнительном коде. Если z
S
= 0,
то результат положительный и представлен в обычном коде.
Пример 1.5. Сложить два числа A
10
= 12, B
10
= -4, используя дополнительный код.
Решение:
Знак Число
z
A
0 01100 A
2
= A
10
= 12 (прямой код),
+
z
B
1
11100
2
~
B
= B
10
= -4 (дополнительный код),
10 01000
z
S
0 01000 S
2
= S
10
= 8.
четырех двоичных разрядов. Два таких кода даны в таблице 1.4. В коде «два из пяти»   Пример 1.3. Сложить два числа A10 = 12, B10 = -4.
для представления десятичных цифр используются только те комбинации, которые         Решение:
содержат две 1 и три 0. В циклическом коде Джонсона переход к последующему                                            Знак Число
числу осуществляется путем последовательной замены 0 на 1, начиная справа, до                                       zA → 0 01100 ← A2 = A10 = 12 (прямой код),
заполнения всех разрядов единицами, а затем заменой 1 на 0 до заполнения нулями.                                          +
При таком кодировании используется избыточное количество личных разрядов, т. е.                                      zB → 0       11011 ←      B2 = B10 = -4 (обратный код),
их требуется больше, чем при представлении в двоичной системе исчисления.
        Применение таких кодов, использующих для представления десятичных цифр
избыточное число двоичных разрядов (более четырех), позволяет обнаруживать                                               10       00111
некоторые ошибки, которые могут возникнуть при передаче чисел в результате                                                                   1 ← циклический перенос
неисправностей или действия помех. Например, при использовании кода «два из
пяти» легко обнаруживаются ошибки типа ложного перехода 0 в 1 и наоборот, так                                        zS → 0       01000 ← S2 = S10 = 8.
как при этом в двоичном 5-разрядном коде оказываются соответственно три или одна     Пример 1.4. Вычесть из числа A10 = -21 число B10 = -14.
1 вместо двух 1 при правильном функционировании. При использовании кода              Решение:
Джонсона ошибочными являются комбинации, при которых один или несколько 0                                                Знак Число
оказываются между 1 или наоборот.
                                                                       Таблица 1.4                                    zA → 1 01010 ← A2 = A10 = -21 (обратный код),
                Примеры избыточных двоично-десятичных кодов                                                                  -
Десятичное                                                                                                            zB → 1 10001 ← B2 = B10 = -14 (обратный код),
                      Код «два из пяти»             Циклический код Джонсона
   число
    А10        a4     a3     a2      a1    a0     b4     b3      b2     b1     b0                                             1        01010 ← A2
     0          0      0      0      1     1      0      0       0      0       0                                             +
     1          0      0      1      0     1      0      0       0      0       1                                                      01110 ← B2 (перевод      B2   в обратный код)
     2          0      0      1      1     0      0      0       0      1       1                                             0
     3          0      1      0      0     1      0      0       1      1       1                                                      11000 ← S 2 = S10 = -7.
     4          0      1      0      1     0      0      1       1      1       1                                      zS → 1
     5          0      1      1      0     0      1      1       1      1       1          Недостатком использования обратного кода является образование
     6          1      0      0      0     1      1      1       1      1       0    циклического переноса, который приводит к повторению операции сложения, что
     7          1      0      0      1     0      1      1       1      0       0    существенно увеличивает время выполнения действий. Поэтому во многих случаях
     8          1      0      1      0     0      1      1       0      0       0                                                                           ~
                                                                                     предпочтительнее использовать дополнительный код числа A2 (табл. 1.2). При
     9          1      1      0      0     0      1      0       0      0       0
                                                                                     использовании дополнительного кода отпадает необходимость в циклическом
1.3. Выполнение арифметических операций в цифровых системах                          переносе и перенос, который может возникать в знаковом разряде числа, не
Арифметические операции над двоичными числами могут производиться по тем же          учитывается. В дополнительном коде представляются все отрицательные числа.
правилам, что и над десятичными. Однако с целью упрощения цифровых систем для        Вычитание заменяется сложением с переводом вычитаемого в дополнительный код,
выполнения сложения, умножения, деления обычно применяются алгоритмы, не             если это число положительное, или переводом из дополнительного кода в обычный,
используемые в обычной десятичной арифметике.                                        если вычитаемое отрицательное. Если знаковый разряд результата zS = 1, то
                                                                                     полученное число отрицательное и представлено в дополнительном коде. Если zS = 0,
Выполнение операций сложения-вычитания над двоичными числами. Для                    то результат положительный и представлен в обычном коде.
выполнения операций сложения и вычитания в цифровой системе удобно
представлять отрицательные числа в обратном коде (табл. 1.2), а положительные - в    Пример 1.5. Сложить два числа A10 = 12, B10 = -4, используя дополнительный код.
обычном коде. Вычитание заменяется сложением с переводом вычитаемого в               Решение:
                                                                                                          Знак Число
обратный код, если это число положительное, и в обычный код (т. е. перевод B2 в
                                                                                                        zA → 0 01100 ← A2 = A10 = 12 (прямой код),
обратный код), если число отрицательное. Если результат операции получается                                  +
отрицательным (zS = 1), то он представлен в обратном коде, если положительным                           zB → 1 11100 ← B    ~ = B = -4 (дополнительный код),
                                                                                                                             2     10
(zS=0) — в обычном двоичном коде.
                                                                                                            10 01000
                                                                                                        zS → 0 01000 ← S2 = S10 = 8.
                                        9                                                                                         10