Просмотр содержимого документа
«Системы счисления»
Конспект по системам счисления.
Система счисления - символический метод записи чисел, представление чисел с помощью письменных знаков.
Существуют три группы систем счисления:
позиционные;
непозиционные;
смешанные.
Внепозиционных системах счисления количественный эквивалент каждой цифры не зависит от ее положения (места, позиции) в записи числа.
Римская система счисления.
Алфавит:
I (один палец) для числа 1, V (раскрытая ладонь) для числа 5, X (две сложенные ладони) для 10, L — 50, а для обозначения чисел 100, 500 и 1000 стали применять первые буквы соответствующих латинских слов (Сentum — сто, Demimille — половина тысячи, Мille — тысяча).
Правило: каждый меньший знак, поставленный справа от большего, прибавляется к его значению, а каждый меньший знак, поставленный слева от большего, вычитается из него.
Например, IX — обозначает 9, XI — обозначает 11.
Чтобы записать число, римляне разлагали его на сумму тысяч, полутысяч, сотен, полусотен, десятков, пятков, единиц. Например, десятичное число 28 представляется следующим образом:
XXVIII=10+10+5+1+1+1 (три десятка, пяток, три единицы).
Десятичное число 99 имеет следующее представление:
XCIХ = -10+100-1+10.
В позиционных системах счисления количественный эквивалент (значение) цифры зависит от ее места (позиции) в записи числа.
Основные достоинства любой позиционной системы счисления — простота выполнения арифметических операций и ограниченное количество символов (цифр), необходимых для записи любых чисел.
В системе счисления с основанием q (q-ичная система счисления) единицами разрядов служат последовательные степени числа q, иначе говоря, q единиц какого-либо разряда образуют единицу следующего разряда. Для записи чисел в q-ичной системе счисления требуется q различных цифр (0,1,...,q-1). Количество цифр используемых в системе счисления называется её «основанием».
В позиционной системе счисления любое вещественное число в развернутой форме может быть представлено в следующем виде:
ai—цифры, принадлежащие алфавиту данной системы счисления,
n — число целых разрядов числа,
m — число дробных разрядов числа.
Десятичная система характеризуется тем, что в ней 10 единиц какого-либо разряда образуют единицу следующего старшего разряда. Другими словами, единицы различных разрядов представляют собой различные степени числа 10.
Пример: число в развернутом виде 1586,2510 =1*103+5*102+8*101+6*100+2*10-1+5*10-2
Двоичная система счисления. Для составления машинных кодов удобно использовать не десятичную, а двоичную систему счисления.
Алфавит: 0, 1.
Основание: 2.
Пример. Записать двоичное число 1001,12 в развернутом виде.
Решение. 1001,12=1·23+0·22+0·21+1·20+1·2-1
Программисты для вычислений также пользуются ещё восьмеричной и шестнадцатеричной системами счисления.
Восьмеричная система счисления.
Алфавит: 0, 1, 2, 3, 4, 5, 6, 7.
Основание: 8.
Пример. Записать восьмеричное число 7764,18 в развернутом виде.
Решение. 7764,18=7·83+7·82+6·81+4·80+1·8-1
Шестнадцатеричная система счисления.
Алфавит: цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и буквы A=(10), B=(11), C=(12), D=(13), E=(14), F=(15).
Основание: 16.
Пример. Записать шестнадцатеричное число 3АF16 в развернутом виде.
Решение. 3АF16= 3·162+10·161+15·160
Перевод чисел в различные системы счисления.
Перевод целого числа из десятичной системы счисления в любую другую систему счисления. При переводе целого числа из десятичной системы счисления в любую другую систему счисления, нужно это число последовательно делить на основание новой системы счисления так, чтобы в остатках от деления были только символы новой системы счисления. Число в новой системе счисления записывается как последовательность остатков от деления, записанных в обратном порядке, начиная с последнего. Например, переведём число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную системы счисления:
Таким образом, число 7510 = 10010112 = 1138 = 4В16
При переводе дробной части числа из десятичной системы счисления в любую другую систему счисления, нужно дробную часть числа последовательно умножать на основание новой системы счисления. Дробная часть числа в новой системе счисления записывается как последовательность целых частей от умножения, записанных в прямом порядке, начиная с первого.
Например, переведём дробное число 0, 96 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную системы счисления:
Таким образом, число 0,9610 = 0,1111012 = 0,753418 = 0.F5C28F16
Перевод чисел из любой системы счисления в десятичную систему счисления.
При переводе числа из любой системы счисления в десятичную систему счисления нужно каждый символ этого числа умножить на основание системы счисления, в которой записано это число, в степени соответствующей положению символа в записи числа и все произведения сложить.
Например:
1) переведём число 101100, 10112 из двоичной системы счисления в десятичную систему счисления:
Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную и обратно
Перевод чисел между системами счисления, основания которых являются степенями числа 2 (q = 2n), может производиться по более простым алгоритмам. Такие алгоритмы могут применяться для перевода чисел между двоичной (q = 21), восьмеричной (q = 23) и шестнадцатеричной (q = 24) системами счисления.
Перевод чисел из двоичной системы счисления в восьмеричную.
Для перевода целого двоичного числа в восьмеричное его нужно разбить на группы по три цифры, справа налево, а затем преобразовать каждую группу в восьмеричную цифру. Если в последней, левой, группе окажется меньше трех цифр, то необходимо ее дополнить слева нулями.
Переведем таким способом двоичное число 1010012 в восьмеричное:
Для упрощения перевода можно использовать таблицу преобразования двоичных триад (групп по 3 цифры) в восьмеричные цифры:
Двоичные триады
000
001
010
011
100
101
110
111
Восьмеричные цифры
0
1
2
3
4
5
6
7
Для перевода дробного двоичного числа (правильной дроби) в восьмеричное необходимо разбить его на триады слева направо и, если в последней, правой, группе окажется меньше трех цифр, дополнить ее справа нулями. Далее необходимо триады заменить на восьмеричные числа.
Пример. Преобразуем дробное двоичное число А2 = 0,1101012 в восьмеричную систему счисления:
1102 = 68 , 1012 = 58 .
Получаем: А8 = 0,658.
Перевод чисел из двоичной системы счисления в шестнадцатеричную.
для перевода целого двоичного числа в шестнадцатеричное его нужно разбить на группы по четыре цифры (тетрады), начиная справа, и, если в последней левой группе окажется меньше четырех цифр, дополнить ее слева нулями. Для перевода дробного двоичного числа (правильной дроби) в шестнадцатеричное необходимо разбить его на тетрады слева направо и, если в последней правой группе окажется меньше четырех цифр, то необходимо дополнить ее справа нулями.
Затем надо преобразовать каждую группу в шестнадцатеричную цифру, воспользовавшись для этого предварительно составленной таблицей соответствия двоичных тетрад и шестнадцатеричных цифр.
Для упрощения перевода можно использовать таблицу преобразования двоичных тетрад (групп по 4 цифры) в шестнадцатеричные цифры:
Двоичные тетрады
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Шестнадцатеричные цифры
0
1
2
3
4
5
6
7
8
9
A=
10
B=
11
C=
12
D=
13
E=
14
F=
15
Примеры.
Переведем целое двоичное число А2 = 1010012 в шестнадцатеричное:
00102 = 216 , 10012 = 916 .
В результате имеем: А16 = 2916.
Переведем дробное двоичное число А2 =0,1101012 в шестнадцатеричную систему счисления:
11012 = D16 , 01002 = 416 .
Получаем: А16 = 0,D416.
Для того чтобы преобразовать любое двоичное число в восьмеричную или шестнадцатеричную системы счисления, необходимо произвести преобразования по рассмотренным выше алгоритмам отдельно для его целой и дробной частей.
Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную.
Для перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную необходимо цифры числа преобразовать в группы двоичных цифр. Для перевода из восьмеричной системы в двоичную каждую цифру числа надо преобразовать в группу из трех двоичных цифр (триаду), а при преобразовании шестнадцатеричного числа - в группу из четырех цифр (тетраду).
Пример. Преобразуем дробное восьмеричное число А8 = 0,478 в двоичную систему счисления:
48 = 1002 , 78 = 1112 .
Получаем: А2 = 0,1001112 .
Переведем целое шестнадцатеричное число А16 = АВ16 в двоичную систему счисления:
A16 = 10102 , B16 = 10112 .
В результате имеем: А2 = 101010112
Арифметические действия в различных системах счисления
Рассмотрим основные арифметические операции: сложение, вычитание и умножение.
Арифметические операции в двоичной системе счисления.
Сложение. Для сложения в двоичной системе счисления используется следующая таблица:
+
0
1
0
0
1
1
1
10
т.е. 0+0=0, 0+1=1, 1+0=1, 1+1=10.
Пример.
+
1001
+
1011
+
11111
+
1010011,111
1010
1101
1
11001,110
10011
11000
100000
1101101,101
Вычитание. При выполнении операции вычитания всегда из большего по абсолютной величине числа вычитается меньшее и ставится соответствующий знак.
Пример. Используя таблицу сложения вычесть из большего числа меньшее.
—
10111001,1
—
110101101
10001101,1
101011111
101100,0
1001110
Умножение. Операция умножения выполняется с использованием таблицы умножения по обычной схеме, применяемой в десятичной системе счисления с последовательным умножением множимого на очередную цифру множителя.
*
0
1
0
0
0
1
0
1
т.е. 0*0=0, 1*0=0, 0*1=0, 1*1=1.
Пример.
*
11001
*
11001,01
1101
11,01
+
11001
+
1100101
0
0
1100100
110010100
11001000
1100101000
101000101
1010010,0001
Арифметические операции в восьмеричной системе счисления.
Сложение.
Для сложения в восьмеричной системе счисления используется следующая таблица:
+
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
1
2
3
4
5
6
7
10
2
2
3
4
5
6
7
10
11
3
3
4
5
6
7
10
11
12
4
4
5
6
7
10
11
12
13
5
5
6
7
10
11
12
13
14
6
6
7
10
11
12
13
14
15
7
7
10
11
12
13
14
15
16
т.е. 0+6=6, 1+7=10, 3+6=11, 6+2=10, … 7+7=16.
Пример.
+
764
+
73,270
365
5,134
1351
100,424
Вычитание.
Пример. Используя таблицу сложения вычесть из большего числа меньшее.
—
137
—
202,00
64
45,36
53
134,42
Умножение. Операция умножения выполняется с использованием таблицы умножения.
×
0
1
2
3
4
5
6
7
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
2
0
2
4
6
10
12
14
16
3
0
3
6
11
14
17
22
25
4
0
4
10
14
20
24
30
34
5
0
5
12
17
24
31
36
43
6
0
6
14
22
30
36
44
52
7
0
7
16
25
34
43
52
61
Пример.
*
27
*
24
44
62
+
134
+
50
1340
1700
1474
1750
Арифметические операции в шестнадцатеричной системе счисления.
Сложение.
Для сложения в шестнадцатеричной системе счисления используется следующая таблица:
+
0
1
2
3
4
5
6
7
8
9
А
В
С
D
E
F
10
0
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
1
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
2
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
3
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
4
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
5
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
6
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
7
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
8
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
9
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
A
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
B
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
C
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
D
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
E
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
F
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
10
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
Пример.
+
1СЕ
+
7E,AD
91А
FE,60
АЕ9
17D,0D
Вычитание.
Пример. Используя таблицу сложения вычесть из большего числа меньшее.
—
1000,A2
—
97
23,B9
7B
FDC,E9
1C
Умножение.
Операция умножения выполняется с использованием таблицы умножения.
*
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
2
0
2
4
6
8
A
C
E
10
12
14
16
18
1A
1C
1E
3
0
3
6
9
C
F
12
15
18
1B
1E
21
24
27
2A
2D
4
0
4
8
C
10
14
18
1C
20
24
28
2C
30
34
38
3C
5
0
5
A
F
14
19
1E
23
28
2D
32
37
3C
41
46
4B
6
0
6
C
12
18
1E
24
2A
30
36
3C
42
48
4E
54
5A
7
0
7
E
15
1C
23
2A
31
38
3F
46
4D
54
5B
62
69
8
0
8
10
18
20
28
30
38
40
48
50
58
60
68
70
78
9
0
9
12
1B
24
2D
36
3F
48
51
5A
63
6C
75
7E
87
A
0
A
14
1E
28
32
3C
46
50
5A
64
6E
78
82
8C
96
B
0
B
16
21
2C
37
42
4D
58
63
6E
79
84
8F
9A
A5
C
0
C
18
24
30
3C
48
54
60
6C
78
84
90
9C
A8
B4
D
0
D
1A
27
34
41
4E
5B
68
75
82
8F
9C
A9
B6
C3
E
0
E
1C
2A
38
46
54
62
70
7E
8C
9A
A8
B6
C4
D2
F
0
F
1E
2D
3C
4B
5A
69
78
87
96
A5
B4
C3
D2
E1
Пример.
*
CB
*
A5F
4F
6E
+
BE5
+
9132
32C0
3E3A0
3EA5
474D2
Дополнительный код числа – способ представления целых Диапазон значений величин зависит от количества бит памяти, отведенных для их хранения. Например, величины типа Integer лежат в диапазоне от -32768 (-215) до 32767 (215 - 1) и для их хранения отводится 2 байта (16 бит). Данные могут быть интерпретированы как числа со знаком, так и без знака. В случае представления величины со знаком самый левый (старший) разряд указывает на положительное число, если содержит ноль, и на отрицательное, если — единицу.
Дополнительный код положительного числа совпадает с его прямым кодом. Прямой код целого числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют таким количеством незначащих нулей, сколько требует тип данных, к которому принадлежит число.
Пример. Число 3710 = 1001012 объявлено величиной типа Integer. Его прямым кодом будет 0000000000100101.
Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:
записать прямой код модуля числа;
инвертировать его (заменить единицы нулями, нули — единицами);
прибавить к инверсному коду единицу.
Пример. Запишем дополнительный код числа -37, интерпретируя его как величину типа Integer.
Решение.
прямой код числа 37 есть 0000000000100101;
инверсный код 1111111111011010;
дополнительный код 1111111111011011.
При получении числа по его дополнительному коду прежде всего необходимо определить его знак. Если число окажется положительным, то просто перевести его код в десятичную систему счисления. В случае отрицательного числа необходимо выполнить следующий алгоритм:
вычесть из кода числа 1;
инвертировать код;
перевести в десятичную систему счисления. Полученное число записать со знаком минус.
Пример. Запишем числа, соответствующие дополнительным кодам: 0000000000010111, 1111111111000000.
Решение.
0000000000010111. Поскольку в старшем разряде записан нуль, то результат будет положительным. Это код числа 23.
1111111111000000. Здесь записан код отрицательного числа. Исполняем алгоритм:
1) 11111111110000002 – 12 = 11111111101111112 ;
2) 0000000001000000;
3) 10000002 = 6410 .
Ответ: -64.
Контрольные задания.
Вариант контрольного задания выбирается по следующей схеме: последняя цифра номера зачетной книжки является номером варианта.
Последняя цифра
1
2
3
4
5
6
7
8
9
0
№ варианта
1
2
3
4
5
1
2
3
4
5
Пример.
Номер зачетной книжки: 4528.
Из этого следует, что необходимо решить задания из Варианта №3.
Вариант №1.
Задание 1. Перевести число в римскую систему счисления: 154210.
Задание 2. Записать число в развернутом виде: 126,25410 , 100112 , 75428 , FD1,816 .
Задание 3. Перевести числа в 10-ую систему счисления: 111012, 57628, А9С1,1516 .
Задание 4. Перевести каждое число из 10-ой СС в 2-ую, 8-ую и 16-ую СС; попарно их сложить и вычесть в каждой из систем счисления: 204510 , 236810 .
Задание 5. Перевести каждое число из 2-ой СС в 10-ую, 8-ую и 16-ую СС: 101110012 , 1000111112 .