Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_Тимохова_Ч1.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

1.3. Позиционные системы счисления

Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.

Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.

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

Наименование системы счисления соответствует ее основанию (десятичная, двоичная, пятеричная и т.д.).

Цифры – это символы, при помощи которых записывается число.

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

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

Ниже приведена таблица, содержащая наименования некоторых позиционных систем счисления и перечень знаков (цифр), из которых образуются в них числа.

Таблица. Примеры систем счисления

Основание

Система счисления

Знаки

2

Двоичная

0,1

3

Троичная

0,1.2

4

Четвертичная

0,1,2,3

5

Пятиричная

0,1,2,3,4

8

Восьмиричная

0,1,2,3,4,5,6,7

10

Десятичная

0,1,2,3,4,5,6,7,8,9

12

Двенадцатиричная

0,1,2,3,4,5,б,7,8,9,А,В

16

Шестнадцатиричная

0,1,2,3,4,5,6,7,8,9,A.B,D,E,F

Отметим, что кроме рассмотренных выше позиционных систем счисления существуют такие, в которых значение знака не зависит от того места, которое он занимает в числе. Такие системы счисления называются непозиционными. Наиболее известным примером непозиционной системы является римская. В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам:

1(1) V(5) X(10) L(50) С (100) D(500) M(1000)

Примеры: III (три), LIX (пятьдесят девять), DLV (пятьсот пятьдесят пять).

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

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

При работе с компьютерами приходится параллельно использовать несколько позиционных систем счисления (чаще всего двоичную, восьмеричную, десятичную и шестнадцатеричную), поэтому большое практическое значение имеют процедуры перевода чисел из одной системы счисления в другую. Заметим, что во всех приведенных выше примерах результат является десятичным числом, и, таким образом, способ перевода чисел из любой позиционной системы счисления в десятичную уже продемонстрирован.

Рассмотрим таблицу соответствия систем счисления для первых 17 чисел (курсивом выделены цифры в системах счисления)

Таблица 1.1. – Соответствие чисел в различных системах счисления

десятичная

двоичная

восьмеричная

шестнадцатеричная

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена

x = anPn + an-1Pn-1 + ... + a1P1 + a0P0 + a-1P-1 + ... + a-mP-m

(1.7)

При переводе чисел из системы счисления с основанием P в десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и в дробной части, начиная с разряда сразу после запятой слева направо (начальный номер – 1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степени, равной номеру разряда. Это и есть представление исходного числа в десятичной системе счисления.

Примеры:

(десятичный индекс внизу указывает основание системы счисления):

23,43(10) = 2*101 + 3*100 + 4*10-1 + 3*10-2

(в данном примере знак «3» в одном случае означает число единиц, а в другом – число сотых долей единицы);

692(10) = 6*102 + 9*101 + 2.

(«Шестьсот девяносто два» с формальной точки зрения представляется в виде «шесть умножить на десять в степени два, плюс девять умножить на десять в степени один, плюс два»).

1101(2)= 1*23 + 1*22+0*21+ 1*20;

112(3) = l*32+ 1*31 +2*30;

341,5(8) =3*82+ 4*81 +1*80 +5*8-1;

A1F4(16) = A*162 + 1*161 + F*160 + 4*16-1.

Пример:

Перевести данное число в десятичную систему счисления.

а) 1000001(2).

1000001(2)=1 26+0 25+0 24+0 23+0 22+ 0 21+1 20 = 64+1=65(10).

Замечание. Очевидно, что если в каком-либо разряде стоит нуль, то соответствующее слагаемое можно опускать.

б) 1000011111,0101(2).

1000011111,0101(2)=129 + 124 + 123 + 122 + 121 + 120 + 12-2 + 12-4 = 512 + 16 + 8 + 4 + 2 + 1 + + 0,25 + 0,0625 = 543,3125(10).

в) 1216,04(8).

1216,04(8) = 183+282+181+680+4 8-2 = 512+128+8+6+0,0625 = 654,0625(10).

г) 29A,5(16).

29A,5(16) = 2162+9161+10160+516-1 = 512+144+10+0,3125 = 656,3125(10).

При переводе чисел из десятичной системы счисления в систему с основанием P > 1 обычно используют следующий алгоритм:

Целая и дробная части переводятся порознь.

1) если переводится целая часть числа, то она делится на P, после чего запоминается остаток от деления. Полученное частное вновь делится на P, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остатки от деления на P выписываются в порядке, обратном их получению;

2) если переводится дробная часть числа, то она умножается на P, после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на P и т.д. Процедура продолжается до тех пор, пока дробная часть не станет равной нулю. Целые части выписываются после запятой в порядке их получения. Результатом может быть либо конечная, либо периодическая дробь в системе счисления с основанием P. Поэтому, когда дробь является периодической, приходится обрывать умножение на каком-либо шаге и довольствоваться приближенной записью исходного числа в системе с основанием P.

Примеры: 29,73(10) будем переводить в двоичную, восьмеричную и шестнадцатеричную системы счисления:

В ДВОИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ:

Для целой части:

Для дробной части:

остаток от деления

29 : 2 = 14

1

14 : 2 = 7

0

7 : 2 = 3

1

3 : 2 = 1

1

1 : 2 = 0

1

0,73 • 2 = 1,46 (целая часть 1),

0,46 • 2 = 0,92 (целая часть 0 ),

0,92 • 2 = 1,84 (целая часть 1),

0,84 • 2 = 1,68 (целая часть 1) и т.д.

Таким образом

29,73(10)=11101,1011…(2).

В ВОСЬМЕРИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ:

Для целой части:

Для дробной части:

остаток от деления

29 : 8 = 3

5

3 : 8 = 0

3

0,73 • 8 = 5,84 (целая часть 5),

0,84 • 8 = 6,72 (целая часть 6 ),

0,72 • 8 = 5,76 (целая часть 5),

0,76 • 8 = 6,08 (целая часть 6) и т.д.

Таким образом

29,73(10)=35,5656…(8).

В ШЕСТНАДЦАТЕРИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ:

Для целой части:

Для дробной части:

остаток от деления

29 : 16 = 1

13 (по таблице – это D)

1 : 16 = 0

1

0,73 • 16 = 11,68 (целая часть 11, т.е. B),

0,68 • 16 = 10,88 (целая часть 10, т.е. A),

0,88 • 16 = 14,08 (целая часть 14, т.е. E),

0,08 • 16 = 1,28 (целая часть 1) и т.д.

Таким образом

29,73(10)=1D,BAE1…(16).

Правила перевода в двоичной, восьмеричной и шестнадцатеричной системах счисления

Преобразования чисел из двоичной в восьмеричную и шестнадцатеричную системы и наоборот столь просты (по сравнению с операциями между этими тремя системами и привычной нам десятичной) потому, что числа 8 и 16 являются целыми степенями числа 2. Этой простотой и объясняется популярность восьмеричной и шестнадцатеричной систем в вычислительной технике и программировании.

Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). Итак, в целой части будем производить группировку справа налево, в дробной – слева направо. Если в последней группе недостает цифр, дописываем нули: в целой части – слева, в дробной – справа. Затем каждая группа заменяется соответствующей цифрой новой системы. Соответствия приведены в таблице выше.

Примеры:

Переведем из двоичной системы в восьмеричную число 1111010101,11(2).

001 111 010 101,110(2) = 1725,6(8).

Переведем из двоичной системы в шестнадцатеричную число 1111010101,11(2).

0011 1101 0101,1100(2) = 3D5,C(16).