
- •Вычитание двоичных чисел
- •Вычитание в дополнительном коде
- •Отрицательные двоичные числа
- •Сложение в bcd-формате
- •Вычитание в bcd-формате
- •Другие тетрадные системы счисления
- •Код Айкена
- •Код Грея
- •Перевод двоичных чисел в шестнадцатеричную систему счисления
- •Преобразование восьмеричных чисел
- •Дополнительный двоичный код
- •Код Хемминга
ДВОИЧНЫЕ КОДЫ И
СИСТЕМЫ СЧИСЛЕНИЯ
Введение
С помощью цифровых схем производятся различные вычисления. Поэтому необходимо представлять все десятичные цифры и все необходимые числа в виде комбинации 0 и 1. Представление числа только двумя знаками называется бинарным представлением.
Коды, которые используют только два знака, называют бинарными (двоичными) кодами. |
Существует множество бинарных кодов. Но на практике применяются только некоторые из них. Бинарные коды имеют регламентированную разрядность. Каждая десятичная цифра в определенном коде представляется определенным количеством так называемых бинарных разрядов. Бинарный разряд может принимать значение 0 или 1. Бинарный разряд, или базовая единица данных называется бит (от англ.: binary digit — двоичная цифра).
Бит означает один бинарный разряд. Он может быть равен 0 или 1. |
В двоичном коде представляются прежде всего десятичные числа. Однако оказалось целесообразным использовать также другие системы счисления. Особенное значение имеет шестнадцатеричная система счисления. Наряду с этим часто используется восьмеричная система счисления. Особенное значение имеет двоичная система счисления. Двоичная система счисления одновременно является бинарным кодом, так как состоит только из цифр 0 и 1.
Двоичная система счисления
Структура двоичной системы счисления
Все используемые системы счисления являются так называемыми позиционными системами счисления. В позиционной системе счисления позиция цифры однозначно связана со значением числа посредством особого фактора увеличения в виде степенного числа.
В десятичной системе счисления каждый разряд числа умножается на 10 в соответствующей степени (рис. 8.1). Чтобы посчитать от нуля до 9, нужен ноль и девять цифр в колонке единиц. Число десять запишется как 1 в колонке десятков и 0 в колонке единиц.
Если в распоряжении имеются только цифры 0 и 1, то каждый разряд числа умножается на степень числа два (рис. 8.2). В первом столбце справа могут быть записаны только числа от 0 до 1. Для записи числа необходимо использовать 2 столбца справа. Число 2 получается путем записи 0 в первом столбце справа и 1 во втором столбце справа (рис. 8.3). Для представления числа 7 требуется записать 111. Первая 1 справа представляет значение 1, вторая 1 — значение 2, и третья 1 — значение 4. В итоге получается 4 + 2 + 1 = 7.
Перевод двоичных чисел в
десятичную систему счисления
Перевести двоичное число в десятичное очень просто. Для этого используют таблицу согласно рис. 8.4. Эта таблица может быть по желанию продолжена влево.
Двоичное число заносится в таблицу (рис. 8.4). Столбцы, в которых должны быть 0, не представляют интереса. Важными являются столбцы, в которых стоит 1. Первое двоичное число на рис. 8.4 имеет 1 в столбце 25. Эта 1 представляет значение 32. Следующая 1 стоит в столбце 22. Эта 1 представляет значение 4. Общее значение двоичного числа составляет 32 + 4 = 36.
Второе двоичное число имеет 1 в столбце 27. Эта 1 представляет значение 128. Следующая 1 стоит в столбце 25. Эта 1 представляет значение 32. Обе следующие единицы представляют значения 4 и 2. Общее значение двоичного числа в итоге 128 + 32 + 4 + 2 = 166.
Определим значения третьего и четвертого двоичных чисел на рис. 8.4. Для третьего двоичного числа должно получиться значение 1633. Четвертое двоичное число имеет значение 752.
Перевод десятичных чисел
в двоичную систему счисления
Преобразование десятичных чисел в двоичные может также быть проведено при помощи таблицы. Таблица должна иметь достаточно большое количество столбцов. При преобразовании определяют прежде всего единицу с наибольшим значением, затем единицы с меньшими значениями. Общее значение десятичного числа разделяется на столбцы. Рассмотрим пример.
Переведем десятичное число 900 в двоичное число. 1 со значением 1024 не подходит, так как десятичное число имеет значение только 900. Наибольшая единица для этого примера 29. Она имеет значение 512. Итак, мы задействовали 512 из 900. Остается еще 388. Следующая 1 в столбце 2* имеет значение 256. Теперь остаток составляет только 388 — 256 ** 132. 1 в столбце 27 имеет значение 128, так что остается 4. Остаток 4 дает I в столбце 22. В другие столбцы записывается 0. В итоге десятичное число 900 преобразовано в двоичное число 1110000100. Теперь попробуем преобразовать двоичное число в десятичное.
Преобразуйте десятичные числа 1300 и 1877 в двоичные. Получают следующие результаты:
1300 * 10100010100;
1877 - 11101010101.
Вещественные двоичные числа
(правильные дроби)
Двоичные числа бывают, как и десятичные, с цифрами после запятой. Первому разряду справа от запятой ставится в соответствие 2-1 .Второму разряду справа от запятой — 2-2. На рис. 8.6 показано распределение степеней числа 2 по разрядам справа от запятой.
Двоичные числа с запятой (дробные) пересчитываются в десятичные числа таким же способом, как и двоичные числа без запятой. Соответственно можно и дробные десятичные числа перевести в двоичную систему.
Пример———————————————————————————————————
Десятичное число |
25 32 |
24 16 |
23 8 |
22 4 |
21 2 |
20 1 |
2-1 0,5 |
2-2 0,25 |
2-3 0,125 |
2-4 0,0625 |
22,6875 |
|
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
Может
так случиться, что десятичное число
с запятой
не может быть преобразовано в двоичное
число без остатка. Тогда нужно решить,
на сколько разрядов после запятой
следует производить преобразование
и по достижении этой разрядности
закончить пересчет. Для облегчения
пересчета можно использовать таблицу
на рис. 8.7.
24 23 22 21 20
16 8 4 2 1
1 1 Перенос
1 0 1 1 1. Число
1 0 0 1 1 2. Число
Если преобразовать двоичные числа в десятичные, можно легко проверить правильность проведенного сложения.
Маленькое 2 в скобках внизу обозначает двоичное число. Число с 10 в скобках внизу является десятичным числом. Эта идентификация применяется только в случае возможных недоразумений.
Вычитание двоичных чисел
Непосредственное вычитание
Двоичное число может, как и в десятичной системе, вычитаться из другого двоичного числа. Такое вычитание называется нормальным. Для него действуют следующие правила.
Правила:
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
Вычитание 0—1 приводит к отрицательному результату. Здесь возникает несколько трудностей.
При непосредственном вычитании вычитаемое число пишется прямо под числом, от которого оно отнимается (уменьшаемым).
Пример —————————————————————————————
1 1 0 1 1 Уменьшаемое
-1 0 0 0 1 Вычитаемое
1 0 0 1 1 Разность
Вычитание начинают со столбца с наименьшей степенью, с самого правого. Цифра вычитаемого вычитается из цифры уменьшаемого ( 1 – 1 = 0 в примере). Затем происходит вычитание во втором столбце справа (1-0=1), затем в 3 столбце справа и т. д. Этот пример не представляет никакой трудности, так как не возникает ситуации 0 — 1. В следующем примере иначе.
Пример —————————————————————————————
Чтобы провести вычитание в третьем столбце справа, «одолжим» 1 из 4-го столбца. Получается: 10 - 1 = 1. Единица в сером круге, таким образом,. становится 0.
Вычитание в дополнительном коде
В компьютерной технике вычитание производится преимущественно добавлением дополнения к вычитаемому числу.
Вычитание с дополнением также возможно в десятичной системе. Предположим, что пятиразрядный спидометр машины показывает 95000 (рис. 8.8). Если машина проедет еще 15 000 км, то спидометр покажет 10 000. Такое же число получится, если от 95 000 отнять 85 000. Число 15 000 называется дополнением к числу 85 000. Конечно, этот способ функционирует только при выполнении условия, что при прибавлении дополнения результат не отображается в шестом разряде. То есть спидометр на рис. 8.8 не может быть шестиразрядным. В компьютерной технике можно просто осуществлять запрет переносов.
При пятиразрядном представлении в десятичной системе дополнение и вычитаемое в сумме дают число 100000, т. е. 105. При шестиразрядном представлении в десятичной системе дополнение и вычитаемое в сумме дают 106. Общий принцип гласит:
В десятичной системе дополнение и вычитаемое число дополняют друг друга при п-разрядном представлении до 10n. |
Найденное дополнение называется B-дополнением.
В двоичной системе вычитание в дополнительном коде производится аналогичным образом.
В приведенном примере нужно вычесть из числа 15 число 7. Результат будет 8. Какое число должно быть прибавлено к 15(10) = 1111(2), чтобы в результате получилось 8(10) = 1000(2) при условии, что перенос в 5 разряде запрещен? Методом подбора находим число 1001(2)= 9(10). Это число является дополнением к 111(2) = 7(10).
При четырехзначном представлении дополняют вычитаемое число до 16 =24. При пятизначном представлении— до 25 = 32. В следующем примере показано, как дополнение (25) и вычитаемое (7) дополняют друг друга до 32.
Пример —————————————————————————————
Итак, можно сформулировать следующее правило.
В двоичной системе дополнение и вычитаемое число дополняют друг друга при n-разрядном представлении до 2n. |
Если требуется найти дополнение вычитаемого числа, то прежде всего нужно знать, с каким количеством разрядов предстоит работать. В компьютерной технике разрядность известна заранее. Для наших примеров мы принимаем разрядность 6. Если вычитаемое число имеет меньше значащих цифр, чем 6, то оно расширяется ведущими нулями до достижения заданного 6-разрядного формата.
Пример —————————————————————————————
При 6 разрядах сумма дополнения и вычитаемого должна быть равна 26 - 64. Если вычитаемое число 7, то дополнение должно быть 57.
Если теперь проинвертировать расширенное число, т. е. вместо всех 0 записать 1 и вместо всех 1 записать 0, то получится число, которое только на 1 меньше искомого дополнения. Получается число 56.
Пример —————————————————————————————
32 16 8 4 2 1
0 0 0 1 1 1 = 7
↓ ↓ ↓ ↓ ↓ ↓
1 1 1 0 0 0 = 56
Это не случайность, а закономерность, которую можно проверить на следующих примерах.
После инвертирования вычитаемого числа, расширенного до полного формата, получается число на 1 меньше дополнения к вычитаемому. |
Если к полученному коду добавить 1, то получается искомое дополнение.
Для получения дополнения в двоичной системе следует воспользоваться следующим алгоритмом:
|
Справедливость этого метода доказана на следующих примерах.
Пример (6-разрядное представление)___________________________________
1 0 1 1 1 1 = 47
- 1 1 0 1 1 = 27
?
0 1 1 0 1 1 Уменьшаемое число
↓ ↓ ↓ ↓ ↓ ↓
1 0 0 1 0 0 Инвертированное уменьшаемое число
+ 1
1 0 0 1 0 1 Дополнение
Перенос
Дополнение
Результат
Пример (8-разрядное представление) —————————————————
1 0 1 1 1 1 = 47
— 1 1 0 1 1 = 27
?
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
Уменьшаемое число |
↓ |
↓ |
↓ |
↓ |
↓ |
↓ |
↓ |
↓ |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
Инвертированное уменьшаемое число |
|
|
|
|
|
|
+ |
1 |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
Дополнение |
Перенос |
|
1 |
1 |
|
І |
1 |
1 |
1 |
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
Дополнение |
+ |
1 |
1 |
1 |
0. |
0 |
1 |
0 |
1 |
Результат: |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
=20