YourLib.net
Твоя библиотека
Главная arrow Информатика (А.В. Терехов, А.В. Чернышев, В.Н. Чернышев) arrow 1.4. Системы счисления
1.4. Системы счисления

1.4. Системы счисления

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

1.1. Некоторые системы счисления  

Основание
  

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

Знаки
  

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, 6, 7, 8, 9, А, В
  

16
  

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

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, E, F
  

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

Рисунок

(знак «,» отделяет целую часть числа от дробной. Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Именно поэтому такие системы счисления называют позиционными). Позиционная система счисления - система, в которой величина числа определяется значениями входящих в него цифр и их относительным положением в числе.
   Примеры:

23,4310 = 2 • 101 + 3 • 100 + 4 • 10-1 + 3 • 10-2

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

69210 = 6 • 102 + 9 • 101 + 2 • 100;
11012 = 1 • 23+ 1 • 22 + 0 • 21 + 1 • 20 = 1310;
1123 = 1 • 32 + 1 • 31 + 2 • 30 = 1410;
341,58 = 3 • 82 + 4 • 81 + 1 • 80 + 5 • 8-1 = 225,12510;
A1F,416 = А • 162 + 1 • 161 + F • 160 + 4 • 16-1 = 2591,62510.

   При работе с компьютерами приходится параллельно использовать несколько позиционных систем счисления (чаще всего двоичную, десятичную, восьмеричную и шестнадцатеричную), поэтому большое практическое значение имеют процедуры перевода чисел из одной системы счисления в другую. Заметим, что во всех приведенных выше примерах результат является десятичным числом, и, таким образом, способ перевода чисел из любой позиционной системы счисления в десятичную уже продемонстрирован.
   В общем случае, чтобы перевести целую часть числа из десятичной системы в систему с основанием В, необходимо разделить ее на В. Остаток даст младший разряд числа. Полученное при этом частное необходимо вновь разделить на В - остаток даст следующий разряд числа и т.д. Деления продолжают до тех пор, пока частное не станет равным 0. Значения получившихся остатков, взятые в обратной последовательности, образуют искомое двоичное число.
   Целая и дробная части переводятся порознь. Для перевода дробной части ее необходимо умножить на В. Целая часть полученного произведения будет первым (после запятой, отделяющей целую часть от дробной) знаком. Дробную же часть произведения необходимо вновь умножить на В. Целая часть полученного числа будет следующим знаком и т.д.
   Пример перевода целой части:
                 Остаток
   25/2 = 12 (1),
   12/2 = 6 (0),
   6/2 = 3 (0),
   3/2 = 1 (1),
   1/2 = 0 (1).
   Таким образом: 2510 = 110012.
   Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д. Заметим, что конечная десятичная дробь при этом вполне может стать бесконечной (периодической) двоичной.
   Пример перевода дробной части:
   0, 73 • 2 = 1,46 (целая часть 1),
   0, 46 • 2 = 0,92 (целая часть 0),
   0, 92 • 2 = 1,84 (целая часть 1),
   0, 84 • 2 = 1,68 (целая часть 1) и т.д.
   Таким образом: 0,7310 = 0,10112.
   Над числами, записанными в любой системе счисления, можно производить различные арифметические операции.
   Так, для сложения и умножения двоичных чисел необходимо использовать следующие правила:
   0 + 0 = 0;    0 • 0 = 0;
   0 + 1 = 1;    0 • 1 = 0;
   1 + 1 = 10;  1 • 1 = 1.
   Необходимо отметить, что при двоичном сложении 1 + 1 возникает перенос единицы в старший разряд - как и в десятичной арифметике:

Рисунок

   С точки зрения изучения принципов представления и обработки информации в компьютере, обсуждаемые в этом пункте системы представляют большой интерес. Хотя компьютер «знает» только двоичную систему счисления, часто с целью уменьшения количества записываемых на бумаге или вводимых с клавиатуры компьютера знаков бывает удобнее пользоваться восьмеричными или шестнадцатеричными числами, тем более что, как будет показано далее, процедура взаимного перевода чисел из каждой из этих систем в двоичную очень проста - гораздо проще переводов между любой из этих трех систем и десятичной.
   Перевод чисел из десятичной системы счисления в восьмеричную производится (по аналогии с двоичной системой счисления) с помощью делений и умножений на 8. Например, переведем число 58,3210:
   58/8 = 7 (2 в остатке),
   7/8 = 0 (7 в остатке).
   0, 32 • 8 = 2,56,
   0, 56 • 8 = 4,48,
   0, 48 • 8=3,84,...
   Таким образом, 58,3210 = 72,243... 8 = 7 • 81 + 2 • 82 + 2 • 8-1 + 4 • 8-2 + 3 • 8-3 (из конечной дроби в одной системе может получиться бесконечная дробь в другой).
   Перевод чисел из десятичной системы счисления в шестнадцатеричную производится аналогично.
   С практической точки зрения представляет интерес процедура взаимного преобразования двоичных, восьмеричных и шестнадцатеричных чисел. Для этого воспользуемся табл. 1.2 чисел от 0 до 15 (в десятичной системе счисления), представленных в других системах счисления.

1.2. Соответствие чисел в различных системах счисления

Десятичная
  

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

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

Двоичная
  

0
  

0
  

0
  

0
  

1
  

1
  

1
  

1
  

2
  

2
  

2
  

10
  

3
  

3
  

3
  

11
  

4
  

4
  

4
  

100
  

5
  

5
  

5
  

101
  

6
  

6
  

6
  

110
  

7
  

7
  

7
  

111
  

8
  

8
  

10
  

1000
  

9
  

9
  

11
  

1001
  

10
  

А
  

12
  

1010
  

11
  

В
  

13
  

1011
  

12
  

С
  

14
  

1100
  

13
  

D
  

15
  

1101
  

14
  

Е
  

16
  

1110
  

15
  

F
  

17
  

1111
  

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

110110012 = 11    011 001= 3318.
        3       3    1

   Группу из трех двоичных цифр часто называют «двоичной триадой». Перевод целого двоичного числа в шестнадцатеричное производится путем разбиения данного числа на группы по 4 цифры - «двоичные тетрады»:

Рисунок

   Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатеричную системы аналогичное разбиение на триады или тетрады производится от точки вправо (с дополнением недостающих последних цифр нулями):

Рисунок

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

1(1) V(5) Х(10) L(50) С(100) D(500) М(1000).

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

 
< Пред.   След. >