Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теоретическая Информатика

.pdf
Скачиваний:
64
Добавлен:
11.04.2015
Размер:
6.24 Mб
Скачать

§ 2. Двоичная система счисления

45

§2. Двоичная система счисления

1.Определение двоичной системы счисления

1°. О с н о в н ы е с в е д е н и я

Двоичная система счисления позиционная система счис-

ления, состоящая только из двух цифр 0 и 1.

Двоичное число число, записанное двоичными цифрами. Это самая простая система счисления с минимальным ос-

нованием 2. Она используется в компьютерах по причинам:

1)простота аппаратной реализации: 1 — есть сигнал, 0 — нет;

2)самое сложное действие таблицы умножения это 12 × 12 = 12, таблицы сложения — 12 + 12 = 102.

Итак, число 10 в разных системах счисления имеет разное

количественное значение. Для различения таких значений основание системы пишется после числа в виде нижнего ин- декса. Этот индекс всегда находится в десятичной системе. Ин- декс можно опускать при очевидном контексте.

Приведем таблицы умножения, сложения и вычитания двоичных чисел. Видно, что таблица сложения сложнее таб- лицы умножения; возможно, слово «сложение» происходит от «сложный».

Т а б л и ц а 1 . 8

Таблица умножения двоичных чисел

× 0 1

0 0 0

1 0 1

Т а б л и ц а 1 . 9

Таблицы сложения и вычитания двоичных чисел

+

0

1

0

0

= 0

 

 

 

1

0

=

1

0

0

1

1

1

=

0

 

1

102

1

102

1 = 1

 

 

 

 

 

 

 

 

46 Глава 1. Числа

Выпишем первые натуральные двоичные числа от 0 до 16. Это можно сделать, используя следующее правило.

Основное свойство натуральных чисел: следующее натураль-

ное число больше предыдущего на 1.

Применяя это свойство, получаем (только все время нужно помнить, что 12 + 12 = 102): 12 + 12 = 102 десять»), 102 + 12 = 112

одиннадцать»), 112 + 12 = 1002

сто») (рис. 1.10).

 

1

 

 

1 1

1

102

 

112

+ 1

+ 1

+

1

102

112

 

1002

а

б

 

в

Рис. 1.10. Вычисление первых двоичных чисел

 

 

 

 

Т а б л и ц а 1 . 1 1

Первые натуральные двоичные числа от 0 до 16

 

 

 

 

 

 

 

 

 

 

 

 

 

Десятичное

Двоичное

Десятичное

Двоичное

 

число

число

число

число

 

 

 

 

 

 

0

0

8

10002

 

1

1

9

10012

 

2

102

1010

10102

 

3

112

1110

10112

 

4

1002

12

11002

 

5

1012

13

11012

 

6

1102

14

11102

 

7

1112

15

11112

 

 

 

 

16

100002

 

 

 

 

 

 

 

Неудобно, но приходится называть двоичное число на русском языке по аналогии с десятичным, хотя такое название не соответствует количественному значению двоичного числа. Например, двоичное число 102 «де- сять» обозначает два предмета, а двоичное число 112 «одиннадцать» — три предмета.

§ 2. Двоичная система счисления

47

При внимательном изучении табл. 1.11 получаем, что име- ется:

1)только 2 однозначных двоичных числа 0 и 1;

2)4 = 22 двузначных двоичных числа: 00, 01, 102 и 112;

3)8 = 23 трехзначных двоичных чисел от 000 до 1112;

4)16 = 24 четырехзначных двоичных чисел от 0000 до 11112. Рассуждая по аналогии и учитывая подобный опыт подсче-

та количества таких чисел для десятичной системы (табл. 1.7), получим табл. 1.12 (все числа в которой записаны в десятич- ной системе).

Т а б л и ц а 1 . 1 2

Количество однозначных, двузначных и т. д. до десятизначных двоичных чисел

Разрядность

Количество двоичных чисел

двоичных чисел

с такой разрядностью

1

2

= 21

2

4

= 22

3

8

= 23

4

16

= 24

5

32

= 25

6

64

= 26

7

128

= 27

8

256

= 28

9

512

= 29

10

1024

= 210

 

 

 

Однозначными двоичными числами можно пронумеровать от 1 до 2 объектов, двузначными от 1 до 4, трехзначными

1—8 и т. д.

Значащие цифры в двоичной системе имеют те же свойст- ва, что и в десятичной. Например, значащими цифрами числа

00110,0110100 являются цифры 1100110100.

48

Глава 1. Числа

2°. О п е р а ц и и

н а д д в о и ч н ы м и ч и с л а м и

Рассмотрим четыре элементарные арифметические опера- ции над целыми двоичными числами.

Операции над двоичными числами производятся точно так же, как и над десятичными числами.

При проведении операций над двоичными числами, как и в случае операций над десятичными числами, удобно произ- водить операции столбиком. При этом следует учитывать, что

12 + 12 = 102, 12 + 12 + 12 = 112, а 102 12 = 12.

1. Двоичные числа складываются столбиком точно так же, как и десятичные. На рис. 1.13 показано сложение двух пар двоичных чисел: 1100102 (=50) и 1101112 (=55), 1101112 (=55) и 1110112 (=59).

Когда при сложении текущих разрядов двух чисел в дво- ичной системе получается 102 или 112, то 1 переходит в сле- дующий разряд.

1 1

1 1

1 1 1 1 1 1

110010

110111

+ 110111

+ 111011

1101001

1110010

 

а

б

Рис. 1.13. Сложение двоичных чисел:

а) 1100102 + 1101112 = 11010012 (50 + 55 = 105); б) 1101112 + 1110112 = 11100102 (55 + 59 = 114)

2. При вычитании следует помнить, что уменьшаемое не должно быть меньше вычитаемого. Если уменьшаемое меньше вычитаемого, то разность переворачивается, а результат ум- ножается на −1.

Двоичные числа вычитаются столбиком точно так же, как и десятичные. На рис. 1.14 показано вычитание двух пар двоич-

ных чисел: 11001102 (=102) и 10012 (=9), 1011112 (=47) и 111000002 (=224).

При вычитании в двоичной системе если из 0 вычитается 1, то этот 0 в вычитаемом становится 102, ближайшая слева 1 ста- новится 0, а все нули между ними становятся 1.

§ 2. Двоичная система счисления

49

 

 

0 10

1 1 10

0 10

0 1 1 1 1 10

1100110

11100000

- 1001

- 101111

1011101

10110001

 

а

б

Рис. 1.14. Вычитание двоичных чисел:

а) 11001102 10012 = 10111012 (102 9 = 93); б) 1011112 111000002 = −101100012 (47 224 = −177)

3. Двоичные числа умножаются столбиком точно так же, как и десятичные. На рис. 1.15 показано умножение двух пар двоичных чисел: 100012 (=17) и 10112 (=11); 1010012 (=41) и 11010002 (=104).

Становится очевидным, что самое сложное в умножении двоичных чисел сложение нескольких чисел, равных первому сомножителю, цифры которого просто сдвинуты по разрядам влево.

 

10001

 

 

101001

×

1011

 

×

1101000

 

10001

 

 

101001

 

10001

 

 

101001

+ 10001

 

+ 101001

 

10111011

 

 

1000010101000

 

а

 

б

Рис. 1.15. Умножение двоичных чисел:

а) 100012 × 10112 = 101110112 (17 × 11 = 187); б) 1010012 × 11010002 = 10000101010002 (41 × 104 = 4264)

4. Двоичные числа делятся столбиком точно так же, как и десятичные. На рис. 1.16 показано деление двух пар двоичных чисел: 1001002 (=36) и 112 (=3); 100011112 (=143) и 11012 (=13).

Самое сложное в этом процессе вычитание двух чисел, причем это вычитание сильно упрощается тем, что вычитается всегда делитель. Таким образом, двоичное деление может быть проще двоичного умножения.

50

 

 

 

 

 

 

 

 

 

Глава 1. Числа

 

 

 

 

 

 

100011111101

 

10010011

1101

 

 

1011

 

11

 

1100

 

 

 

 

 

 

 

 

10011

 

 

11

 

 

1101

 

 

 

11

 

1101

 

0

 

1101

 

 

 

 

 

 

0

 

 

 

 

а

 

 

 

 

 

б

 

Рис. 1.16. Деление двоичных чисел:

а) 1001002 : 112 = 11002 (36 : 3 = 12); б) 100011112 : 11012 = 10112 (143 : 13 = 11)

3°. У п р а ж н е н и я

1.Составьте таблицу с десятичными и двоичными числами от 0 до 32. Используйте ее для перевода чисел.

2.К одной телефонной станции подключено 100 номеров, к другой — 1000. Одной компьютерной программе доступны 5000 ячеек памяти, другой — 8000. Двоичными числами какой минимальной длины можно закодировать эти номера и ячейки?

4.Вычислите в двоичной системе счисления.

а. 111012 + 100012; 110112 + 100112; 101112 + 101112; 111112 + 101112.

б. 111002 100012; 110102 100112; 101102 101112; 111102 101112.

в. 111012 100012; 110112 100112; 101112 101112; 111112 101112.

г. 110112/112; 110012/1012; 11111102/1102; 1111112/10012.

§ 2. Двоичная система счисления

51

2. Перевод двоичных чисел в десятичные и обратно

1°. П е р е в о д д в о и ч н ы х ч и с е л в д е с я т и ч н ы е Будем заниматься переводом только натуральных чисел. Как было сказано выше, любое натуральное число можно

разложить единственным образом по степеням десятки с ко- эффициентами, принимающими значение от 0 до 9.

Точно так же любое натуральное число M > 0 можно разло- жить единственным образом по степеням двойки:

M = A0 + A2 22 +K+ AN2 2N2 + AN1 2N1 , AN1 = 1.

Равенство AN 1 = 1 означает, что все степени двойки со степе-

нями, большими или равными N, равны 0. Остальные коэф- фициенты разложения A0 , A1 , K, AN 2 равны либо 0, либо 1.

Нуль является исключением: все его коэффициенты равны нулю: 0 = 0.

Примеры.

а. 1 = 20. б. 2 = 21.

в. 3 = 20 + 21.

г. 4 = 22.

Это разложение по степеням двойки и положено в основу перевода двоичных чисел в десятичные и обратно.

Кроме того, любое натуральное число M можно записать в двоичной системе счисления, причем двоичные цифры совпа- дают с коэффициентами разложения числа M по степеням двойки, но расположены в обратном порядке по сравнению с предыдущей формулой:

M = AN1AN2 KA1A0 2 , AN1 = 1.

Равенство AN 1 = 1, как и прежде, означает, что старший раз-

ряд числа равен 1. Остальные N 1 цифры A0 , A1 , K, AN 2 рав-

ны либо 0, либо 1.

Объединяя две последние формулы, получаем самый из- вестный и простой алгоритм перевода двоичных чисел в деся- тичные.

52 Глава 1. Числа

А л г о р и т м 1 . 1 7 . П е р е в о д д в о и ч н о г о ч и с л а в д е с я т и ч н о е .

N-значное двоичное число переводится в десятичное по следующей формуле:

AN1AN2 KA1A0 2 = A0 + A1 21 +K+ AN2 2N2 + AN1 2N1 , AN1 = 1,

где все числа в правой части равенства записаны в десятичной системе.

Примеры.

а. 100102 = 0 + 1 2 + 0 4 + 0 8 + 1 16 = 18. б. 110102 = 0 + 1 2 + 0 + 1 8 + 1 16 = 26. в. 1000102 = 1 2 + 1 32 = 34.

г. 1010102 = 2 + 8 + 32 = 42.

Несмотря на то, что это самый простой из всех алгоритмов перевода между двоичными и десятичными числами, четвер- тый пример показывает, что алгоритм 1.17 можно немного уп- ростить.

А л г о р и т м 1 . 1 8 . У п р о щ е н н ы й п е р е в о д д в о - и ч н ы х ч и с е л в д е с я т и ч н ы е .

Для перевода двоичного числа в десятичное нужно просто сложить двойки, возведенные в степени, равные разрядам не- нулевых двоичных цифр этого числа.

Примеры.

а. 1 0 1 2 = 20 + 22 = 1 + 4 = 5.

2 1 0

б. 1 1 0 0 1 1 2 = 20 + 21 + 24 + 25 = 1 + 2 + 16 + 32 = 51.

5 4 3 2 1 0

Этот перевод можно сделать еще проще, если приписывать снизу не степень двойки, а сразу двойку в соответствующей степени.

Примеры.

а. 1 1 0 2 = 4 + 2 = 6.

4 2 1

б. 1 1 0 1 1 0 2 = 32 + 16 + 4 + 2 = 54.

32 16 8 4 2 1

§ 2. Двоичная система счисления

53

2°. П е р е в о д д е с я т и ч н ы х ч и с е л в д в о и ч н ы е Приведенное в п. 1° разложение произвольного натураль-

ного числа M > 0 по степеням двойки

M = A0 + A1 21 + A2 22 +K+ AN2 2N2 + 2N1

позволяет также по числу M вычислить коэффициенты разло- жения A0 , A1 , K, AN 2 и максимальную ненулевую степень

двойки N 1.

Заметим, что, поскольку формулу можно переписать в виде

M = A0 + 2(A1 + A2 21 +K+ AN2 2N3 + 2N2 ),

то при делении числа M на 2 остаток равен A0 , а частное равно

A1 + A2 21 +K+ AN2 2N3 + 2N2 = A1 + 2(A2 +K+ AN2 2N4 + 2N3 ).

Тогда при делении этого частного на 2 остаток равен A1 , и т. д.:

коэффициент A0 равен остатку от делении M на 21 ;

коэффициент A1 равен остатку от делении M на 22 ;

коэффициент AN 1 равен всегда 1: остатку от делении M на 2N.

Другими словами, коэффициент AI в разложении произ-

вольного числа M по степеням двойки равен остатку от деле- ния произвольного числа M на два в степени I + 1. Здесь I это индекс, пробегающий значения от 0 до N 1, где N 1 — это максимальная степень двойки, не превышающая исходного

числа M:

2N 1 M < 2N.

Вспоминая, что коэффициенты разложения числа M по степеням двойки являются также цифрами его двоичного представления:

M = AN1AN2 KA2A1A0 2 ,

получаем алгоритм перевода десятичного числа в двоичное. Алгоритм прост, поскольку деление производится в хорошо знакомой десятичной системе.

54

Глава 1. Числа

 

А л г о р и т м 1 . 1 9 . П е р е в о д д е с я т и ч н о г о ч и с л а

вд в о и ч н о е .

1.Число в десятичной системе делится на 2. Частное снова делится на 2. И т. д. Остатки от деления цифры 0 и 1 — яв- ляются цифрами соответствующего двоичного числа, запи-

санными справа налево.

2.Процесс деления прекращается, когда частное становится равным нулю.

Примеры перевода чисел из десятичной системы в двоич- ную представлены на рис. 1.20.

20│2

 

 

 

30│2

 

 

 

20 10│2

 

 

 

30 15│2

 

 

 

0 10 5│2

 

 

0 14 7│2

 

 

0 4

2│2

 

1 6

3│2

 

1

2

1│2

1

2

1│2

 

0

0

0

 

1

0

0

 

 

1

 

 

 

1

 

а

 

 

 

б

 

 

 

Рис. 1.20. Перевод десятичных чисел в двоичные:

а) 20 = 101002; б) 30 = 111102

Предыдущий алгоритм 1.19 перевода десятичных чисел в двоичные еще называют алгоритмом справа налево, поскольку цифры двоичного числа получаются, начиная с младшего разряда.

Рассмотрим теперь алгоритм перевода десятичных чисел в двоичные слева направо, в котором цифры двоичного числа находятся, начиная со старшего разряда.

Снова воспользуемся разложением произвольного нату- рального числа M > 0 по степеням двойки

M= A0 + A1 21 +K+ AN2 2N2 + 2N1

итем фактом, что имеется показатель степени N такой, что

2N 1 M < 2N.