ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.06.2025
Просмотров: 4495
Скачиваний: 2
Глава 2. Кодирование и системы счисления
эквивалента числа 7 и дополнение двоичного эквивалента числа 3 равняется:
, 0 1 1 1 |
7io |
1101 |
- Зю |
-1 0 1 0 0
-1 0 0 0 0
=0100 tio
Вычитание числа 10000^, проведенное в соответствии с уравне нием (2.10), дает правильный результат 0100^. Это может произой ти в 4-битовом компьютере просто потому, что высший результат игнорируется. Итак, при проведении вычитания с помош;ью точно го дополнения нет необходимости учитывать высший перенос С4. Но необходимо соблюдать осторожность в связи с переполнением числового диапазона. Исследуем это ниже.
2.3.6. Переполнение числового диапазона
Исходя из вышесказанного возникает необходимость рассмотрения проблемы переполнения числового диапазона (overflow) в связи с представлением на основе точного дополнения. Переполнение число вого диапазона может происходить только в двух случаях. А имен но, когда суммируются два положительных числа либо суммируют ся два отрицательных числа. В связи с этим рассмотрим несколько примеров, относяш;ихся к 4-битовому представлению.
•Пример переполнения числового диапазона при сложении двух положительных чисел:
0 1 0 1 |
5io |
0 1 0 1 |
5io |
= 1010 |
-610 |
Очевидно, что результат является неправильным. Ошибка воз никает за счет переноса 3-го разряда на место 4-го разряда, что приводит к симуляции отрицательного числа. Этот пере нос сз в представлении, используюш;ем п бит, обычно обозна чается как Сп-1- Перенос с^ (в обш;ем случае с^) из разряда 4 в разряд 5 называется Carry {Су). В этом примере данный перенос не имеет места.
2,3. Арифметические операции с фиксированной запятой
•Пример переполнения численного диапазона при сложении от рицательных чисел:
+ |
1011 |
-5io |
1011 |
-5io |
|
- ( 1 ) 0 1 1 0 |
6io |
|
В этом примере также появляется неправильный результат. Имел место не перенос Cn-i из разряда 3 в разряд 4, а перенос Сп ИЗ разряда 4 в разряд 5.
•Для сравнения проведем сложение двух отрицательных чисел без переполнения числового диапазона:
+11111101 —3io
=(1)1100 -4io- l i o
Имели место переносы Сп и c^-i.
Сведем эти результаты вместе с другими, здесь не показанны ми случаями, в таблицу. На основе результатов, представленных в табл. 2.3, для двух двоичных чисел Л и Б, которые лежат в чи словом диапазоне, определяемом п-битовом представлением на базе точного дополнения, можно установить перенос переполнения при сложении.
Таблица 2.3. Перенос переполнения при сложении в случае п-битового представления на основе точного дополнения.
Правильный результат |
Перенос переполнения |
||
А-\-В |
Сп = 0, C n - l = 0 |
Сп ~ 0, Сп - 1 = 1 |
|
А-В |
Сп = |
Сп—\ |
невозможен |
-А-В |
Сп = 1, |
Сп - 1 = 1 |
Сп ^^ -L) Сп — 1 ^^^ vJ |
Следовательно, правильный результат имеет место тогда, когда Сп = c^i-i, неправильный результат — когда Сп ф Cn-i-
2.3.7. Умножение
Умножение выполняется так же, как и для десятичной системы. Рас смотрим пример умножения на основе двоичной системы для чисел
Глава 2. Кодирование и системы счисления
IOD X UD = IIOD:
1010
""ion
1010
1 0 1 0
10 1 О
11 1 ОНО
Наибольший из ожидаемых результатов Е умножения двух п- битовых слов представляет собой:
£; = (2^ - 1) . {2'' -I) = 2^"" - 2''"'^ + 1 < г^"" - 1
Следовательно, результат умножения двух п-битовых чисел име ет длину 2п бит. Но он меньше, чем максимальное представляемое с помош;ью 2п бит двоичное число 2^^ — 1.
Сказанное выше справедливо для умножения положительных чи сел. При вычислениях с использованием представления на основе точного дополнения могут быть применены специальные алгорит мы [20], или следует числа на основе точного дополнения перед умно жением преобразовать обратно в исходные значения, а результат перевести в соответствии со знаком в желаемое представление.
При умножении чисел с фиксированной запятой вначале числа умножаются без учета запятой. Затем запятая вводится в соответ ствии с правилом: умножение двух чисел с п и А; разрядами после запятой даст произведение с п -f /с разрядами после запятой.
2.3.8. Деление
Для деления можно использовать тот же самый алгоритм, что и в десятичной системе. Продемонстрируем это на примере уравнения lOi^ : 2г> = 5D:
1 0 |
1 0 |
1 |
0 |
0 |
1 0 |
~ 1 0 |
1 |
0 |
1 |
0 1 0
10
о
Соответственно при делении числа с п разрядами после запятой на число с к разрядами после запятой частное имеет п — к разрядов
2.4' Шестнадцатеричный код 29
после запятой. Так в соответствии с верхним примером имеем:
10,10-101,1 = 1101,110
Деление чисел с точным дополнением также можно свести к умножению и сложению [20].
2.4. Шестнадцатеричный код
На практике наряду с двоичным кодом внедрился шестнадцатерич ный код, поскольку он обеспечивает лучшее обозрение длинных дво ичных чисел. Шестнадцать шестнадцатеричных цифр определены в табл. 2.4. Шестнадцатеричные цифры больше девяти представлены буквами A-F. Для преобразования двоичных в шестнадцатеричные числа объединяют по четыре цифры двоичного числа, которые ин терпретируются как шестнадцатеричный разряд. Благодаря этому шестнадцатеричное число занимает только четверть разрядов, за нимаемых двоичным числом одинаковой величины.
Например:
ОНО 1100 1111
G С
Итак, справедливо выражение 0110011001III2 = GCFi^.
Таблица 2.4. Шестнадцатеричные числа. |
||||||
десятичные |
двоичные |
шестнадца |
десятичные |
двоичные |
шестнадца |
|
теричные |
теричные |
|||||
0 |
0000 |
0 |
8 |
1000 |
8 |
|
1 |
0001 |
1 |
9 |
1001 |
9 |
|
2 |
0010 |
2 |
10 |
1010 |
А |
|
3 |
ООП |
3 |
11 |
1011 |
В |
|
4 |
0100 |
4 |
12 |
1100 |
С |
|
5 |
0101 |
5 |
13 |
1101 |
D |
|
6 |
ОНО |
6 |
14 |
1110 |
Е |
|
7 |
0111 |
7 |
15 |
1111 |
F |
|
В качестве обозначения шестнадцатеричного числа использует ся индекс Н, Преобразование шестнадцатеричного числа в десятич ное число и обратно проще всего производить через соответствую щее двоичное число. Также возможно производить преобразование с помощью алгоритма, как при преобразовании двоичного числа в
30 Глава 2. Кодирование и системы счисления
десятичное число. Обратное преобразование производится анало гично представленному уравнением (2.2).
2.5. Восьмеричный код
Восьмеричный код применяется аналогично шестнадцатеричному, только объединяются лишь по 3 разряда двоичного числа. Для вось меричного кода применяются цифры десятичного кода от О до 7, он обозначается индексом 0.
Например:
110 101 100 011
Следовательно, справедливо 110101000112 = 65438-
2.6, Код Грея
Часто в цифровой технике требуется для числового кода схема ко дирования, в соответствии с которой при переходе от одного числа к следующему изменялась бы только одна цифра. Выполнение это го условия необходимо, когда вследствие технических неточностей момент переключения не может быть точно выдержан. При пере ключении двух цифр из-за этого могут возникнуть неправильные коммутационные операции. В качестве примера подобной ошибки рассмотрим переключение от lio к 2io в двоичном коде:
0001 — ^ — ^
I |
0000 |
ООП |
0010 |
^ — ^ |
^ ^ |
При этом переключении изменяются биты О и 1 при одновремен ном переключении непосредственно достигается новое число. Если вначале изменяется бит О, то появляется число 0000, и только когда изменяется бит 1, получаем правильное число 0010. Если же снача ла изменяется бит 1 и потом изменяется бит О, то в промежутке возникает число ООН. Коды Грея позволяют избежать этой очень серьезной ошибки за счет того, что при переходе от одного кодово го слова к следуюш;ему изменяется только один разряд. В табл. 2.5 представлен 4-разрядный код Грея. В дополнение к вышесказанно му показанный код имеет свойство, которое заключается в его ци кличности, так как также и при переходе от высшего числа (15D)
2.7, Двоично-десятичный код
низшему числу изменяется только один разряд. Циклические коды Грея могут быть сконструированы р^ля всех прямых длин периодов.
Таблица 2.5. Пример 4-разрядного кода Грея.
Десятичные (числа) |
Код Грея |
Десятичные (числа) |
Код Грея |
0 |
0000 |
8 |
1100 |
1 |
0001 |
9 |
1101 |
2 |
ООП |
10 |
1111 |
3 |
0010 |
11 |
1110 |
4 |
ОНО |
12 |
1010 |
5 |
0111 |
13 |
1011 |
6 |
0101 |
14 |
1001 |
7 |
0100 |
15 |
1000 |
2.7. Двоично-десятичный код
Если мы хотим подвести к десятичным цифрам некоторые отмет ки, то для этого подойдет код, в котором отдельным десятичным цифрам приданы двоично-кодированные кодовые слова. Этот код обозначается как двоично-десятичный код (BCD-код). Подходящая возможность реализации заключается в том, чтобы представить че рез соответствующую каждой из них 4-разрядную двоичную цифру. Поскольку отдельные разряды имеют веса 8, 4, 2 и 1, данный код называют кодом типа 8-4-2-1. Существует также возможность по строить двоично-десятичный код 2, 4, 2, 1 (Aiken-Code). К другим двоично-десятичным кодам относятся код с избытком три (3-Excess- Code) и двоично-десятичный код Грея (BCD-Gray-Code) [5].
Таблица 2.6. Двоично-десятичный код.
Десятичная цифра |
Код типа 8-4-2-1 |
Десятичная цифра |
|
0 |
0000 |
1 |
^ |
1 |
0001 |
6 |
|
2 |
0010 |
7 |
|
3 |
ООН |
8 |
|
4 |
0100 |
9 |
|
Код типа 8-4-2-1 0101 ОНО 0111 1000 1001
Глава 2. Кодирование и системы счисления
2.8. Алфавитно - цифровые коды
Существует большое количество кодов, осуществляющих предста вление алфавитно-цифровых символов с помощью двоичных цифр. Известным примером подобных символов является код ASCII (Ame rican Standard Code for Information Interchange), который содержит также ряд управляющих символов.
Таблица 2.7. Код ASCII (чЛ, управляющие символы)
ASCII |
1 ASCII |
00 |
10 |
01 |
1 1^ |
02 |
1 ^2 |
03 |
13 |
04 |
1 1^ |
05 |
15 |
06 |
16 |
07 |
17 |
08 |
18 |
09 |
19 |
ОА |
lA |
ОВ |
IB |
ОС |
1С |
0D |
ID |
ОЕ |
IE |
OF |
IF |
2.9. Упражнения
Задача 2.1. Преобразуйте следующие двоичные числа в десятич ные числа:
а) 1110,101 б) 10011,1101
Задача 2.2. Преобразуйте следующие десятичные числа в двоич ные числа:
а) 22,125 б) 45,33
2.9. Упраэюнения
Задача 2.3. Рассчитайте приведенные ниже примеры с использо ванием точных дополнений при длине слова в 6 бит. Укажите, имеет ли место переполнение числового диапазона.
а) 010101 - 001010 б) -010111-011011
Задача 2.4. Рассчитайте в двоичной системе: а) 110101-010101 б) 1101110 : 110
Задача 2.5. Разработайте циклический код Грея с длиной периода 6.
Таблица 2.8. Код ASCII (ч.2).
ASCII |
SP |
1 ASCII |
0 |
1 ASCII |
1 ASCII |
Р |
1 ASCII |
1 ASCII |
P |
|||||||
20 |
1 |
30 |
1 |
40 |
@ |
50 |
60 |
i |
70 |
|||||||
21 |
1 |
1 |
^1 |
1 |
1 |
^^ 1 ^^ 1 ^^ 1 ^^' |
||||||||||
1 |
32 |
1 |
42 |
А |
1 |
52 |
Q |
1 |
62 |
а |
1 72 |
q |
||||
" |
||||||||||||||||
22 |
2 |
В |
R |
b |
r |
|||||||||||
23 |
# |
33 |
3 |
43 |
С |
53 |
S |
63 |
с |
73 |
s |
|||||
24 |
$ |
34 |
4 |
44 |
D |
54 |
т |
64 |
d |
74 |
t |
|||||
25 |
% |
35 |
5 |
45 |
Е |
1 |
55 |
и 1 65 |
е |
75 |
u |
|||||
26 |
& |
36 |
6 |
46 |
F |
56 |
V |
1 |
66 |
f |
76 |
V |
||||
27 |
? |
37 |
7 |
47 |
G |
57 |
м |
67 |
g |
77 |
w |
|||||
1 28 |
( |
38 |
8 |
48 |
Н |
58 |
X |
68 |
h |
78 |
X |
|||||
29 |
) |
39 |
9 |
49 |
I |
59 |
Y |
69 |
I |
79 |
у |
|||||
2А |
* |
ЗА |
4А |
J |
5А |
Z |
6А |
J |
7A |
z |
||||||
2В |
+ |
зв |
; |
4В |
К |
5В |
[ |
6В |
к |
7B |
{ |
|||||
2С |
? |
зс |
< |
4С |
L |
5С |
\ |
6С |
1 |
7C |
1 |
|||||
2D |
- |
3D |
= |
4D |
М |
5D |
] |
6D |
m |
7D |
} |
|||||
2Е |
/ |
ЗЕ |
> |
4Е |
N |
5Е |
- |
6Е |
n |
7E |
" |
|||||
2F |
3F |
? |
4F |
о| |
5F |
6F |
о |
7F |
DEL |
|||||||