ГЛАВА 2
.pdfГЛАВА 2. АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЦИФРОВОЙ ТЕХНИКИ
2.1. Системы счисления
Для представления в цифровых устройствах чисел, а также другой информации наряду с привычной для нас десятичной системой счисления широко используются другие системы.
Существующие системы счисления подразделяются на позиционные и непозиционные. В непозиционных системах значение конкретной цифры постоянно и не зависит от ее расположения в записи числа. Примером такой системы счисления является Римская система записи числа. Например, в числе XXXVII значение цифры Х не зависит от ее местоположения в записи числа. Оно везде равно 10.
В позиционных системах счисления значимость конкретной цифры определяется ее местоположением в записи числа. Числа в таких системах счисления представляются последовательностью цифр (цифр разрядов), разделенных запятой на две группы: группу разрядов, изображающую целую часть числа, и группу разрядов, изображающую дробную часть числа:
a2 a1 a0 , a 1 a 2 |
(2.1) |
Здесь a0, a1, … обозначают цифры нулевого, первого и т.д. разрядов целой части числа, а-1, а- 2, … – цифры первого, второго и т.д. разрядов дробной части числа.
Цифре разряда приписан вес pk, где p – основание системы счисления; k – номер разряда, равный индексу при обозначении цифр разрядов. Так, приведенная выше запись (2.1) означает следующее количество:
N a2 p2 a1 p1 a0 p2 |
a 1 p 1 b 2 p 2 . (2.2) |
2.1.1. Десятичная, двоичная, шестнадцатеричная системы
Для представления цифр разрядов используется набор из p различных символов. Так, при p = 10 (т.е. в обычной десятичной системе счисления) для записи цифр разрядов используется набор из десяти символов: 0, 1, 2, … , 9. При этом запись 729,32410 (здесь и далее индекс при числе указывает основание системы счисления, в которой представлено число) означает следующее:
7 102 |
2 101 |
9 100 |
3 10 1 |
2 10 2 |
4 10 3 . |
Используя такой принцип представления чисел, выбирая различные значения основания p, можно строить разнообразные системы счисления. На практике наряду с десятичной системой широкое распространение получили двоичные и шестнадцатеричные системы счисления.
В двоичной системе счисления основание системы p = 2. Таким образом, для записи цифр разрядов требуется набор всего лишь из двух символов, в качестве которых используются 0 и 1. Следовательно, в двоичной системе счисления число представляется последовательностью символов 0 и 1. При этом запись 11011,1012 соответствует в десятичной системе счисления следующему числу:
1 24 |
1 23 |
0 22 |
1 21 |
1 20 |
1 2 1 |
0 2 2 |
1 2 3 |
1 2 4 |
27,62510 . |
В шестнадцатеричной системе счисления основание системы p = 16 и для записи цифр разрядов используется набор из 16 символов: 0, 1, 2, …, 9, A, B, C, D, E, F. В нем используются десять арабских цифр, и до требуемых шестнадцати их дополняют шестью начальными буквами латинского алфавита. При этом символу A в десятичной системе счисления соответствует 10, B –
11, C – 12, D – 13, E – 14, F – 15.
Запись AB9,C2F16 соответствует следующему числу в десятичной системе счисления:
10 162 |
11 161 |
9 160 |
12 16 1 |
2 16 2 |
15 16 3 |
2745,761474510 . |
На практике также используют так называемую двоично-кодированную форму представления десятичных чисел. В этой форме при записи десятичного числа каждая цифра последнего представляется в двоичной форме. Например, число 765,9310 в двоично-кодированной десятичной системе представляется в следующем виде:
765,9310 |
0111 |
|
0110 |
|
0101 |
, |
1001 0011 |
2 10 |
||||
7 |
|
6 |
|
5 |
|
9 |
|
3 |
|
|||
|
|
|
|
Следует заметить, что, несмотря на внешнее сходство двоично-кодированного десятичного числа, содержащего в разрядах лишь цифры 0 и 1, с двоичным числом, первое не является двоичным. Например, если целую часть приведенной выше записи рассматривать как двоичное число, то оно при переводе в десятичную форму означало бы 189310, что не совпадает с целой частью исходного числа 765.
2.1.2 Перевод чисел из одной системы счисления в другую
Перевод шестнадцатеричных чисел в двоичную систему счисления достигается представлением цифр шестнадцатеричного числа четырехразрядными двоичными числами. Например,
A7B,C716 1010 0111 1011, 1100 0111 2 .
При обратном переводе чисел необходимо разряды двоичного числа, отсчитывая их от запятой влево и вправо, разбить на группы по четыре разряда. Неполные крайние группы дополняются нулями. Затем каждая двоичная группа представляется цифрой шестнадцатеричной системы счисления. Например,
0101 |
|
1100 |
, |
1101 |
|
0110 |
5C,D6 |
|
|
|
|
||||
5 |
|
C |
D |
6 |
16 |
||
|
|
Рассмотрим перевод чисел из десятичной системы счисления в шестнадцатеричную. Последовательно деля на 16 целую часть десятичного числа и образующиеся частные, получаем в последнем частном и остатках цифры всех разрядов шестнадцатеричного представления целой части числа. Например,
39519 |
|
16 |
|
|
|
или 39519 : 16 = 2469·16 + 15 |
(F) |
|||
- |
|
|
|
|
|
2469 |
: 16 |
= 2464·16 + 5 |
(5) |
|
|
|
|
|
|
||||||
39504 |
2469 |
16 |
|
|||||||
|
- |
|
|
|
2464 |
: 16 |
= 9·16 + 10 |
(A) |
||
|
|
|
|
|||||||
|
|
|
|
|||||||
15 |
2464 |
154 |
16 |
|||||||
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
9 : 16 = 0·16 + 9 |
(9) |
|||||
|
|
|
|
|||||||
|
5 |
144 |
9 |
|||||||
|
|
|
|
|
|
|
|
|
||
|
|
|
10 |
|
|
Отсюда 3951910 9A5F16 . |
|
Аналогичным образом осуществляется перевод из десятичной системы счисления в двоичную:
25 |
|
2 |
|
|
|
|
|
или |
25: 2 = 12·2 + 1 |
(1) |
- |
|
|
|
|
|
|
|
|
12 : 2 = 6·2 + 0 |
(0) |
|
|
|
|
|
|
|
|
|||
24 |
12 |
2 |
|
|
|
|
||||
|
- |
|
|
|
|
|
|
6 : 2 = 3·2 + 0 |
(0) |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
||||
1 |
12 |
6 |
2 |
|
|
|||||
|
|
|
- |
|
|
|
|
3 : 2 = 1·2+ 1 |
(1) |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
||||
|
0 |
6 |
3 |
2 |
|
|||||
|
|
|
|
|
|
|
|
1: 2 = 0·2+ 1 |
(1) |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
0 |
2 |
1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
Отсюда 2510 |
110012 . |
Преобразование дробной части десятичного числа в шестнадцатеричную или двоичную системы счисления осуществляется последовательным умножением на основание системы (16 или 2) дробной части исходного десятичного числа и дробных частей образующихся произведений. При этом целые части полученных произведений будут являться цифрами новой системы счисления. Например,
0,25 |
|
|
0,258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
16 |
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
4,128 - 4 = 0,128 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отсюда 0,2510 |
0,416 . |
|
|
2,048 - 2 = 0,048 |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
16 |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,768 - 0 = 0,768 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
Отсюда 0,25810 |
0,420С...16 . |
12,288 - 12 = ... |
|||||||||||||||
0,25 |
|
|
0,258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
2 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
0,5 - 0 = 0,5 |
0,516 - 0 = 0,516 |
|
|
|
|
|
|
|
|
|
|
|||||||||||
2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
1 |
|
|
|
|
|
|
1,032 - 1 = 0,032 |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
||
Отсюда 0,2510 |
0,012 . |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
0,064 - 0 = 0,064 |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
Отсюда 0,25810 |
0,0100...2 . |
0,128 - 0 = ... |
2.2. Двоичная арифметика
Основной операцией, которая используется в цифровых устройствах при различных вычислениях, является операция алгебраического сложения чисел (сложения, в котором могут участвовать как положительные, так и отрицательные числа). Вычитание легко сводится к сложению путем изменения на обратный знака вычитаемого. Операции умножения и деления также выполняются с помощью операции сложения и некоторых логических действий.
2.2.1. Сложение положительных двоичных чисел
Выполнение этой операции рассмотрим на примере:
Первое слагаемое |
0 0 1 1 0 1 |
|
|
+ |
|
Второе слагаемое |
0 0 1 1 0 1 |
|
|
|
|
Сумма |
0 1 1 0 1 0 |
|
Переносы |
1 1 1 |
Цифры разрядов суммы формируются последовательно, начиная с младшего разряда. Цифра младшего разряда суммы образуется суммированием цифр младших разрядов слагаемых. При этом кроме цифры разряда суммы формируется цифра переноса в следующий, более старший разряд. Таким образом, в разрядах, начиная со второго, суммируются три цифры: цифры соответствующего разряда слагаемых и перенос, поступающий в данный разряд из предыдущего.
Перенос равен 1 во всех случаях, когда результат суммирования цифр в разряде равен или больше 2 (основание системы счисления). При этом в разряд суммы записывается цифра, на 2 единицы меньшая результата суммирования.
2.2.2. Алгебраическое сложение с использованием дополнительного кода
При записи кода числа знак числа представляется цифрами 0 (для положительных чисел) и 1 (для отрицательных чисел).
Для пояснения сущности излагаемого ниже метода сложения рассмотрим следующий пример. Пусть требуется сложить два десятичных числа 0 83110 и 1 37610. Так как второе слагаемое – отрицательное число, пользование обычным приемом вычитания потребовало бы последовательности действий с займами из старших разрядов. Предусматривать в цифровом устройстве дополнительно такую последовательность действий не обязательно. Достаточно отрицательное число 1 37610 предварительно преобразовать в так называемый дополнительный код следующим образом: во всех разрядах, кроме знакового, запишем дополнение до 9 к цифрам этих разрядов и затем прибавим 1 в младший разряд. Число 1 376 в дополнительном коде есть 1
624.
Далее произведем сложение по правилам сложения с передачей переносов в старшие
разряды (т.е. так, как складываются положительные числа). При сложении складываются и двоичные цифры знаковых разрядов с отбрасыванием возникающего из этого разряда переноса:
Первое слагаемое |
0 8 3 1 |
|
|
|
|
|
+ |
|
|
|
|
Второе слагаемое |
1 6 2 4 |
|
|
|
|
|
|
|
831 |
376 |
455 |
Сумма |
0 4 5 5 |
||||
Переносы |
1 1 |
|
|
|
В двоичной системе счисления дополнительный код отрицательного числа формируется по следующему правилу: инвертируются (путем замены 0 на 1 и 1 на 0) цифры всех разрядов, кроме знакового, и в младший разряд прибавляется 1. Например, дополнительный код числа 1 101102 выглядит как 1 010102. Обратное преобразование из дополнительного кода в прямой код производится по тому же правилу.
Пример 2.1. Сложить положительное число 0 101102 и отрицательное число 1 011012.
Решение. Дополнительный код числа 1 011012 составит 1 10011, тогда сложение будет иметь вид
Первое слагаемое |
0 |
1 0 1 1 0 |
||
|
+ |
|
|
|
Второе слагаемое |
1 |
1 0 0 1 1 |
||
|
|
|
|
|
Сумма |
0 |
0 1 0 0 1 |
||
Переносы |
|
|
1 1 1 |
|
Как указывалось выше, перенос, возникающий из знакового разряда, отбрасывается. Если результат сложения есть отрицательное число, то оно оказывается в дополнительном коде.
Контрольные вопросы и задания
1.Объясните разницу позиционной и непозиционной системами счисления. Приведите примеры таких систем.
2.В чем заключается суть кодирования числа в позиционных системах счисления. Дайте объяснение понятия основание системы.
3.Какие цифры используются в двоичной, десятичной и шестнадцатеричной системах счисления?
4.Какие правила перевода чисел из одной позиционной системы счисления в другую Вы знаете?
Переведите число 3F16 в двоичную и десятичную системы счисления. Переведите число 25610 в двоичную и шестнадцатеричную системы счисления. Переведите число 110100112 в десятичную и шестнадцатеричную системы счисления.
5.Поясните правила сложения положительных двоичных чисел. Сложите числа 1011 01012 и 0101
01112.
6.Что такое дополнительный код числа? Поясните правила сложения с отрицательным числом.
Переведите числа 6510 и -3110 в двоичный код и сложите их.