ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »