Информатика и информационные технологии

© М.Е. Крекин, 1999, 2002

Глава 2
Системы счисления

В этой главе речь пойдет о представлении числовой информации.


§2.1

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

Унарная запись получается очень громоздкой и неудобной, поэтому люди стали искать более компактные способы обозначать большие числа. Появились разные условные обозначения для различных чисел. Например, многие народы использовали в качестве цифр буквы, к которым добавляли специальные значки. На Руси таким знаком было титло:

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

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

В римской системе счисления появилась одна новая идея: хотя там тоже для обозначения чисел использовали буквы (1 -- I, 5 -- V, 10 -- X, 50 -- L, 100 -- C, 500 -- D, 1000 -- M), но роль их зависела от порядка записи (значение могло не только прибавляться, но и вычитаться). Развитие этой идеи привело к появлению современных позиционных систем счисления.

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

444 = 4.100 + 4.10 + 4.1.

или

444 = 4.102 + 4.101 + 4.100.

Нетрудно заметить, что если обозначить цифры числа как a2, a1 и a0, то любое трехзначное число может быть представлено в виде:

N = a2.102 + a1.101 + a0.100.

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

Вообще, выбор в качестве основания позиционной системы именно числа 10 объясняется традицией, а не какими-то особыми свойствами этого числа. С не меньшим успехом можно использовать и любое другое. В общем случае, если основание системы счисления равно p, число, записанное в этой системе, можно представить в виде:
N = aipi + ... + a2p2 + a1p1 + a0p0, [1]
причем каждый из коэффициентов-цифр должен быть меньше p.

Пользуясь этой формулой можно легко перевести число из системы счисления с любым основанием в десятеричную.

Пример:

325426 = 3.64 +2.63 + 5.62 + 4.61 + 2.60 =
3.1296 + 2.216 + 5.36 + 4.6 + 2 = 3888 + 432 + 180 + 24 + 2 = 4526

А как выполнить обратный перевод? Для этого нам нужно будет последовательно делить нацело наше число на основание новой системы счисления, запоминая остатки. Пусть нужно перевести число 2000 в восьмеричную систему счисления.

Действуем так:

2000 : 8 = 250 (ост. 0)
           250 : 8 = 31 (ост. 2)
                     31 : 8 = 3 (ост. 7)
                              3 : 8 = 0 (ост. 3)

Теперь запишем все остатки, не забывая о нулевых, с последнего до первого4:

3720

Это и будет искомое представление.

200010 = 37208.

Контрольные вопросы

  1. Что такое система счисления?
  2. Чем отличаются позиционные системы счисления от непозиционных, в чем их преимущества?
  3. Переведите в десятеричную систему счисления:
    а) 47619; б) 33425; в) 221234; г) 110101002.
  4. Переведите число 199810 в системы счисления с основаниями 2, 3, 8.

Примечания

  1. От лат. Unus -- один
  2. Мы обычно называем такую запись чисел арабской. На самом деле, изобретена она в Индии, но европейцы впервые узнали о ней от арабов
  3. Этим мы, фактически, определили, что 2000 = ((3.8 + 7).8 + 2).8 + 0 или, раскрывая скобки, 3.83 + 7.82 + 2.8 + 0. Сравните этот результат с формулой [1]

[Предыдущая страница][Содержание][Следующая страница]
[Титульная страница][Новости][Макинтош][Информатика и ИТ][Об авторе]
Hosted by uCoz