Макинтош и образование:Информатика и ИТ:Пособие:Системы счисления |
© М.Е. Крекин, 1999, 2002 Глава 2
|
Системой счисления называют совокупность символов (цифр) и правил их использования для представления чисел. |
В римской системе счисления появилась одна новая идея: хотя там тоже для обозначения чисел использовали буквы (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.