Теоретические основы информатики. Учебное пособие
.pdf
Таким образом, 1100100111,011012–8 = 1447,3210.
Для перехода к двоично-кодированной СС с основанием 9 ≤ p ≤ 16, необходимо каждую цифру числа заменить тетрадой, т. е. группой из четырех двоичных цифр.
Пример. Число 5F,9416 перевести в двоично-шестнадцатеричную СС. Заменим каждую шестнадцатеричную цифру соответствующей тетрадой:
т. e. 5F,9416 = 01011111,100101002–16.
При обратном переводе дополним двоичную последовательность необходимым количеством нулей слева и справа для возможности разбиения на тетрады, которые заменим соответствующими шестнадцатеричными цифрами.
Пример. Перевести число 1110100111,111012–16 в 16-ую СС.
Дополним заданное число двумя нулями слева и тремя нулями справа и заменим полученные тетрады шестнадцатеричными цифрами:
0011 |
1010 |
0111, |
1110 |
1000 |
3 |
A |
7, |
E |
8 |
т. е. 1110100111,111012–16 = 3A7,E816.
Кроме указанных, в современных цифровых устройствах широко используется двоично-десятичная СС. Она применяется в случаях, когда основная работа устройства связана не с обработкой и хранением информации, а с ее выводом на какие-либо индикаторы с десятичным представлением полученных результатов. Для перевода в эту систему исходное число также разбивается на тетрады. Например, 273,5910 =
=001001110011,010110012–10.
4.3.Перевод целых чисел из одной позиционной СС в
другую
Пусть требуется перевести число из СС с основанием q в СС основанием р. Для этого целую часть числа необходимо разделить на новое основание р. Полученный в результате деления первый остаток является младшей цифрой целой части числа с основанием р. Целая часть по-
31
лученного числа вновь делится на основание р. В результате определяется второй остаток, равный следующей после младшей цифры числа с основанием р. Деление производится до тех пор, пока не будет получено частное, меньшее делителя. Последнее частное дает старшую цифру числа с основанием р. Затем записываются остатки в порядке, обратном полученному.
Пример. Число 2610 перевести в двоичную систему счисления. Будем последовательно делить число 26 на основание новой СС – число 2. Последнее частное и остатки от деления, записанные в обратном порядке, образуют искомое число в двоичной СС:
_26| 2__ 26 _13|2__
012 _6|2__
1 6 _3|2_
0 2 1
1
Врезультате получаем 2610 = 110102.
Пример. Число 19110 перевести в восьмеричную СС. Перевод производится последовательным делением числа 191 на основание новой системы счисления – число 8. Последнее частное и остатки от деления, записанные в обратном порядке, образуют восьмеричное число
_191| 8__ 184 _ 23|8_
716 2
7
Врезультате получаем 19110 = 2778.
4.4. Перевод из позиционной СС в десятичную
Перевод из любой позиционной системы счисления в десятичную осуществляется следующим способом:
1)каждому разрядом числа приписывается его номер по порядку справа налево, начиная с нуля;
2)суммируются произведения основания системы счисления в степенях, равных соответствующему номеру разрядов, на цифры числа.
Примеры
11010012 = 1 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = = 10510,
32
11010013 = 1 × 36 + 1 × 35 + 0 × 34 + 1 × 33 + 0 × 32 + 0 × 31 + 1 × 30 =
= 100010, 25436 = 2 × 63 + 5 × 62 + 4 × 61 + 3 × 60 = 432 + 180 + 24 + 3 = 63910,
25437 = 2 × 73 + 5 × 72 + 4 × 71 + 3 × 70 = 686 + 245 + 28 + 3 = 96210.
4.5. Перевод дробных чисел
Для перевода правильной дроби из системы счисления с основанием q в систему счисления с основанием р, исходное число умножается на новое основание р. Получающаяся при этом целая часть произведения является первой искомой цифрой. Дробная часть произведения снова умножается на основание р, целая часть нового произведения будет второй искомой цифрой и т. д.
Пример. Перевести число 0,3110 в двоичную СС:
0,|31 | 2
0,|62 | 2
1,|24 | 2 0,|48 | 2 0,|96 | 2 1,|92 | 2 1,|84 | 2 1,|68
Таким образом, 0,3110 = 0,01001112.
Из этого примера следует, что перевод дробей может представлять собой бесконечный процесс, а результат перевода будет приближенным. Количество цифр в числе, представленном в системе счисления с основанием р, определяется из условия, что точность числа в этой системе должна соответствовать точности числа в системе счисления с основанием q. На практике при переводе дробных чисел ограничиваются указанным заранее количеством знаков после запятой.
Перевод дробной части числа рассмотрим на примере перевода двоичной дроби в десятичную. Его можно осуществить сложением всех цифр со степенями 2, соответствующими позициям разрядов ис-
33
ходной двоичной дроби, в которых цифры равны 1, т. е. осуществляется аналогично переводу целых чисел, но цифры нумеруются слева направо со знаком минус.
Пример
0,11101112 = 1×2–1+1×2–2+1×2–3+1×2–5+1×2–6+1×2–7 = 0,929687510
Числа, имеющие целую и дробную часть, переводятся в два этапа: отдельно целая и дробная части числа.
Пример. Перевести число 1996,5510 в восьмеричную систему счисления с точностью до пятого знака после запятой.
Перевод целой части |
Перевод дробной части |
||
_1996|8__ |
0,|55 |
||
16 _249|8_ |
× | 8 |
||
39 |
24 |
_31|8 |
4,|40 |
32 |
_9 |
24 3 |
× | 8 |
76 |
8 |
7 |
3,|20 |
72 |
1 |
|
× | 8 |
4 |
|
|
1,|60 |
|
|
|
× | 8 |
|
|
|
4,|80 |
× | 8 6,|40
Таким образом, 1996,5510 = 3714,431468.
4.6. Арифметические операции в СС с основаниями 2, 8, 16
Правила выполнения арифметических операций для всех позиционных СС одинаковы и совпадают с правилами для десятичной СС. При этом удобно пользоваться таблицами сложения и умножения для СС с основаниями 2, 8 и 16 (табл. 4.2–4.5).
Таблица 4.2
Таблицы сложения и умножения в 2-й СС
34
Таблица 4.3
Таблицы сложения и умножения в 8-й СС
Таблица 4.4
Таблица сложения в 16-й СС
35
Таблица 4.5
Таблица умножения в 16-й СС
Приведем правила выполнения арифметических операций. Сложение. Если результат сложения двух цифр в СС основанием q
больше, чем q, т. е. полученное число двузначное, то старшая цифра результата равна 1. Таким образом, при сложении в следующий разряд может переходить только единица, а результат сложения в любом разряде будет меньше, чем q.
Количество значащих цифр в результате сложения двух положительных чисел либо равно количеству значащих цифр в наибольшем из них, либо на одну цифру больше, но этой цифрой может быть только единица.
Примеры
1. 1001100112+ 11010012 = 1100111002:
1+010110110000111
─────────
1 1 0 0 1 1 1 0 0
36
2. 723,38 + 467,538 = 1413,038:
7 2 3, 3 + 4 6 7, 5 3
───────
1 4 1 3, 0 3
3.3B9,616 + 78С,816 = В45,Е16:
+738BС9,, 86
─────
В4 5, E
Вычитание. Если необходимо вычесть из цифры a цифру b, а ≥ b, то в столбце b таблицы сложения надо найти значение числа а. Самая левая цифра в строке, в которой найдено значение числа а, и будет результатом вычитания. Если же a < b, то нужно заимствовать единицу из левого разряда, поэтому в столбце ищем число 1а, тогда левая цифра в соответствующей строке будет результатом вычитания.
Примеры
1. 1100000,0012 – 101101,12 = 110010,1012:
_ 1 1 0 0 0 0 0, 0 0 1 1 0 1 1 0 1, 1 0 0
───────────
1 1 0 0 1 0, 1 0 1
2. 1510,28 – 1430,738 = 57,258:
_1 5 1 0, 2
1 4 3 0, 7 3
───────
5 7, 2 5
3.25Е,D816 – 171,616 = ED,7816:
_2 5 Е, D 8
1 7 1, 6 0
──────
ЕD, 7 8
Умножение. Умножение выполняется столбиком с использованием таблиц умножения и сложения. Заметим, что во всех позиционных СС с любым основанием q умножение на целое число m сводится к переносу запятой умножаемого на m разрядов вправо или влево (в зависимости от знака m), так же, как и в десятичной системе счисления.
37
Примеры
1. 1001012 × 100112= 10101111112:
1 0 0 1 0 1 × 1 0 0 1 1
──────
+ 1 0100100110 1 + 1 0 0 1 0 1
───────────
1 0 1 0 1 1 1 1 1 1
2. 1176,48 × 45,38 = 56467,748:
1 1 7 6, 4 × 4 5, 3
──────
+ 6 13750743 4 + 4 7 7 2 0
────────
5 6 4 6 7, 7 4
3. 62,B16 × 70,D16 = 2B7D,2F16:
6 2, B
× 7 0, D
────
5 0 2 F
+ 2 B 2 D
───────
2 B 7 D, 2 F
Деление. Деление выполняется уголком.
Примеры
1. 110101112 : 1010112=1012:
_1 1 0 1 0 1 1 1|1 0 1 0 1 1 1 0 1 0 1 1 |1 0 1 _1 0 1 0 1 1
1 0 1 0 1 1
0
2. 462308 : 538 = 7108:
_4 6 2 3 0|5 3 4 5 5 |7 1 0
_5 3 5 3 0
38
3. 4C9816 : 2B16 =1C816:
_4 C 9 8 |2 B
2 B |1 C 8 _2 1 9 2 0 4 _1 5 8
1 5 8
0
Упражнения. Выполнить операции сложения, вычитания, умножения и деления чисел в СС с основаниями 2, 8, 16.
39
5.ЭКОНОМИЧНОСТЬ СИСТЕМЫ СЧИСЛЕНИЯ
5.1.Понятие экономичной СС
Экономичность СС определяется количеством чисел, которые можно записать в данной системе с помощью определенного количества цифр. Имеется в виду не количество разрядов, а общее количество сочетаний цифр, образующих различные числа. Например, пусть имеется 12 цифр. Их можно разбить на 6 групп по 2 цифры (0 и 1) и получить шестиразрядные двоичные числа от 00 00 00 00 00 00 до 11 11 11 11 11 11 общим количеством 26 = 64. Можно разбить заданное количество цифр на 4 группы по три цифры (0, 1, 2). В этом случае
общее количество |
различных |
их сочетаний равно 34 = 81: от |
000 000 000 000 до |
222 222 222 |
222. Аналогично можно произвести |
другие разбиения; при этом число групп определит разрядность числа, а количество цифр в группе – основание СС. Результаты разбиений представлены в табл. 5.1.
|
|
|
Таблица 5.1 |
|
Зависимость количества чисел от основания СС |
||||
|
|
|
|
|
Основание СС |
Разрядность числа |
Количество чисел |
||
(p) |
(k) |
(N) |
|
|
2 |
6 |
26 |
= 64 |
|
3 |
4 |
34 |
= 81 |
|
4 |
3 |
43 |
= 64 |
|
6 |
2 |
62 |
= 36 |
|
12 |
1 |
121 = 12 |
|
|
Отсюда видно, что наиболее экономичной оказывается троичная СС, так как в ней можно записать наибольшее количество чисел N = 81, используя 12 цифр. Данный результат не зависит от исходного количества цифр.
Найдем основание наиболее экономичной СС более точно. Пусть имеется n знаков для записи чисел, а основание системы счисления равно p. Тогда число имеет k = n/p разрядов, а общее количество чисел, которые можно составить, равно N = pn/p. Эта функция имеет график, показанный на рис. 5.1.
40
