СИСТЕМЫ СЧИСЛЕНИЯ
СИСТЕМЫ СЧИСЛЕНИЯ (нумерация) – совокупность способов обозначения натуральных чисел.
На ранних ступенях развития общества люди почти не умели считать. Они различали совокупности двух и трех предметов; всякая совокупность, содержавшая бóльшее число предметов, объединялась в понятии «много». Предметы при счете сопоставлялись обычно с пальцами рук и ног. По мере развития цивилизации потребность человека в счете стала необходимой. Первоначально натуральные числа изображались с помощью некоторого количества черточек или палочек, затем для их изображения стали использовать буквы или специальные знаки. В древнем Новгороде использовалась славянская система, где применялись буквы славянского алфавита; при изображении чисел над ними ставился знак ~ (титло).
Древние римляне пользовались нумерацией, сохраняющейся до настоящего времени под именем «римской нумерации», в которой числа изображаются буквами латинского алфавита. Сейчас ею пользуются для обозначения юбилейных дат, нумерации некоторых страниц книги (например, страниц предисловия), глав в книгах, строф в стихотворениях и т.д. В позднейшем своем виде римские цифры выглядят так:
I = 1; V = 5; X = 10; L = 50; С = 100; D = 500; M = 1000.
О происхождении римских цифр достоверных сведений нет. Цифра V могла первоначально служить изображением кисти руки, а цифра Х могла составиться из двух пятерок. В римской нумерации явственно сказываются следы пятеричной системы счисления. Все целые числа (до 5000) записываются с помощью повторения вышеприведенных цифр. При этом, если бóльшая цифра стоит перед меньшей, то они складываются, если же меньшая стоит перед бóльшей (в этом случае она не может повторяться), то меньшая вычитается из бóльшей). Например, VI = 6, т.е. 5 + 1, IV = 4, т.е. 5 – 1, XL = 40, т е. 50 – 10, LX = 60, т.е. 50 + 10. Подряд одна и та же цифра ставится не более трех раз: LXX = 70; LXXX = 80; число 90 записывается ХС (а не LXXXX).
Первые 12 чисел записываются в римских цифрах так:
I, II, III, IV, V, VI, VII, VIII. IX, X, XI, XII.
Другие же числа записываются, например, как:
XXVIII = 28; ХХХIХ = 39; CCCXCVII = 397; MDCCCXVIII = 1818.
Выполнение арифметических действий над многозначными числами в этой записи очень трудно. Тем не менее, римская нумерация преобладала в Италии до 13 в., а в других странах Западной Европы – до 16 в.
В славянской системе нумерации для записи чисел использовались все буквы алфавита, правда, с некоторым нарушением алфавитного порядка. Различные буквы означали различное количество единиц, десятков и сотен. Например, число 231 записывалось в виде ~ СЛА (C – 200, Л – 30, А – 1).
Этим системам свойственны два недостатка, которые привели к их вытеснению другими: необходимость большого числа различных знаков, особенно для изображения больших чисел, и, что еще важнее неудобство выполнения арифметических операций.
Более удобной и общепринятой и наиболее распространенной является десятичная система счисления, которая была изобретена в Индии, заимствована там арабами и затем через некоторое время пришла в Европу. В десятичной системе счисления основанием является число 10.
Существовали системы исчисления и с другими основаниями. В Древнем Вавилоне, например, применялась шестидесятеричная система счисления. Остатки ее мы находим в сохранившемся до сих пор делении часа или градуса на 60 минут, а минуты – на 60 секунд.
Широкое распространение имела в древности и двенадцатеричная система, происхождение которой, вероятно, связано, как и десятичной системы, со счетом на пальцах: за единицу счета принимались фаланги (отдельные суставы) четырех пальцев одной руки, которые при счете перебирались большим пальцем той же руки. Остатки этой системы счисления сохранились и до наших дней и в устной речи, и в обычаях. Хорошо известно, например, название единицы второго разряда – числа 12 – «дюжина». Сохранился обычай считать многие предметы не десятками, а дюжинами, например, столовые приборы в сервизе или стулья в мебельном гарнитуре. Название единицы третьего разряда в двенадцатеричной системе – гросс – встречается теперь редко, но в торговой практике начала столетия оно еще бытовало. Например, в написанном в 1928 стихотворении Плюшкин В.В.Маяковский, высмеивая людей, скупающих все подряд, писал: «...укупил двенадцать гроссов дирижерских палочек». У ряда африканских племен и в Древнем Китае была употребительна пятеричная система счисления. В Центральной Америке (у древних ацтеков и майя) и среди населявших Западную Европу древних кельтов была распространена двадцатеричная система. Все они также связаны со счетом на пальцах.
Самой молодой системой счисления по праву можно считать двоичную. Эта система обладает рядом качеств, делающей ее очень выгодной для использования в вычислительных машинах и в современных компьютерах.
Позиционные и непозиционные системы счисления.
Разнообразные системы счисления, которые существовали раньше и которые используются в наше время, можно разделить на непозиционные и позиционные. Знаки, используемые при записи чисел, называются цифрами.
В непозиционных системах счисления от положения цифры в записи числа не зависит величина, которую она обозначает. Примером непозиционной системы счисления является римская система, в которой в качестве цифр используются латинские буквы.
В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от ее позиции. Количество используемых цифр называется основанием системы счисления. Место каждой цифры в числе называется позицией. Первая известная нам система, основанная на позиционном принципе – шестидесятeричная вавилонская. Цифры в ней были двух видов, одним из которых обозначались единицы, другим – десятки.
Однако наиболее употребительной оказалась индо-арабская десятичная система. Индийцы первыми использовали ноль для указания позиционной значимости величины в строке цифр. Эта система получила название десятичной, так как в ней десять цифр.
Различие между позиционой и непозиционной систем счисления легче всего понять на примере сравнения двух чисел. В позиционной системе счисления сравнение двух чисел происходит следующим образом: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Бóльшая цифра соответствует бóльшему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозиционной системе счисления это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI.
Позиционные системы счисления.
Основание системы счисления, в которой записано число, обычно обозначается нижним индексом. Например, 5557 – число, записанное в семеричной системе счисления. Если число записано в десятичной системе, то основание, как правило, не указывается. Основание системы – это тоже число, и его мы будем указывать в обычной десятичной системе. Вообще, число x может быть представлено в системе с основанием p, как x = an·pn +an – 1·pn–1 + a1·p1 + a0·p0, где an...a0 – цифры в представлении данного числа. Так, например,
103510=1·103 + 0·102 + 3·101 + 5·100;
10102 = 1·23 + 0·22 + 1·21 + 0·20 = 10.
Наибольший интерес при работе на ЭВМ представляют системы счисления с основаниями 2, 8 и 16. Вообще говоря, этих систем счисления обычно хватает для полноценной работы как человека, так и вычислительной машины, однако иногда в силу различных обстоятельств все-таки приходится обращаться к другим системам счисления, например к троичной, семеричной или системе счисления по основанию 32.
Чтобы оперировать с числами, записанными в таких нетрадиционных системах, нужно иметь в виду, что принципиально они ничем не отличаются от привычной десятичной. Сложение, вычитание, умножение в них осуществляется по одной и той же схеме.
Почему же не используются другие системы счисления? В основном, потому, что в повседневной жизни люди привыкли пользоваться десятичной системой счисления, и не требуется никакая другая. В вычислительных же машинах используется двоичная система счисления, так как оперировать числами, записанными в двоичном виде, довольно просто.
Часто в информатике используют шестнадцатеричную систему, так как запись чисел в ней значительно короче записи чисел в двоичной системе. Может возникнуть вопрос: почему бы не использовать для записи очень больших чисел систему счисления, например по основанию 50? Для такой системы счисления необходимы 10 обычных цифр плюс 40 знаков, которые соответствовали бы числам от 10 до 49 и вряд ли кому-нибудь понравится работать с этими сорока знаками. Поэтому в реальной жизни системы счисления по основанию, большему 16, практически не используются.
Перевод чисел из одной системы счисления в другую.
Наиболее часто встречающиеся системы счисления – это двоичная, шестнадцатеричная и десятичная. Как же связаны между собой представления числа в различных системах счисления? Есть различные способы перевода чисел из одной системы счисления в другую на конкретных примерах.
Пусть нужно перевести число 567 из десятичной в двоичную систему. Сначала определяется максимальная степень двойки, такая, чтобы два в этой степени было меньше или равно исходному числу. В данном случае это 9, т.к. 29 =512, а 210 = 1024, что больше начального числа. Таким образом получается число разрядов результата, оно равно 9 + 1 = 10, поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры. Вторая цифра результата находится так – двойка возводится в степень 9 и вычитается из исходного числа: 567 – 29 = 55. Остаток сравнивается с числом 28 = 256. Так как 55 меньше 256, то девятый разряд – нуль, т.е. результат имеет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 27 = 128 > 55, то и он будет нулевым.
Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 25 = 32 < 55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55 – 32 = 23 справедливо неравенство 24 = 16 < 23, что означает равенство единице пятого разряда. Аналогично получается в результате число 1000110111. Это число разлагается по степеням двойки:
567 = 1·29 + 0·28 + 0·27 + 0·26 + 1·25 + 1·24 + 0·23 + 1·22 + 1·21 + 1·20
При другом способе перевода чисел используется операция деления в столбик. Если взять то же число 567 и разделить его на 2, получается частное 283 и остаток 1. Та же операция производится и с числом 283. Частное – 141, остаток – 1. Опять полученное частное делится на 2 и так до тех пор, пока частное не станет меньше делителя. Теперь, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, т.е. 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.
Результат, естественно, не изменился: 567 в двоичной системе счисления записывается как 1 000 110 111.
Эти два способа применимы при переводе числа из десятичной системы в систему с любым основанием. Например, при переводе числа 567 в систему счисления с основанием 16 число сначала разлагается по степеням основания. Искомое число состоит из трех цифр, т.к. 162 = 256 < 567 < 163 = 4096. Определяется цифра старшего разряда. 2·162 = 512 < 567 < 3·162 = 768, следовательно, искомое число имеет вид 2хх, где вместо х могут стоять любые шестнадцатеричные цифры. Остается распределить по следующим разрядам число 55 (567 – 512). 3·16 = 48 < 55 < 4·16 = 64, значит во втором разряде находится цифра 3. Последняя цифра равна 7 (55 – 48). Искомое шестнадцатеричное число равно 237.
Второй способ состоит в последовательном делении в столбик, с единственным отличием в том, что делить надо не на 2, а на 16, и процесс деления заканчивается, когда частное становится строго меньше 16.
Конечно, для записи числа в шестнадцатеричной системе счисления, необходимо заменить 10 на A, 11 на B и так далее.
Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде x = a0·pn + a1·pn–1 +... + an–1·p1 + an·p0, где a0 ... an – это цифры данного числа в системе счисления с основанием p.
Например,так можно перевести число 4A3F в десятичную систему. По определению, 4A3F= 4·163 + A·162 + 3·16 + F. При замене A на 10, а F на 15, получается 4·163 + 10·162 + 3·16 + 15= 19007.
Проще всего переводить числа из двоичной системы в системы с основанием, равным степеням двойки (8 и 16), и наоборот. Для того чтобы целое двоичное число записать в системе счисления с основанием 2n, нужно данное двоичное число разбить справа налево на группы по n-цифр в каждой; если в последней левой группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов; рассмотреть каждую группу, как n-разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2n.
Таблица 1. ДВОИЧНО-ШЕСТНАДЦАТЕРИЧНАЯ ТАБЛИЦА | ||||||||
2-ная | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
16-ная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
2-ная | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
16-ная | 8 | 9 | A | B | C | D | E | F |
Таблица 2. ДВОИЧНО-ВОСЬМЕРИЧНАЯ ТАБЛИЦА | ||||||||
2-ная | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
8-ная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Известный французский астроном, математик и физик Пьер Симон Лаплас (1749–1827) писал об историческом развитии систем счисления, что «Мысль выражать все числа девятью знаками, придавая им, кроме значения по форме, еще значение по месту, настолько проста, что именно из-за этой простоты трудно понять, насколько она удивительна. Как нелегко было прийти к этому методу, мы видим на примере величайших гениев греческой учености Архимеда и Аполлония, от которых эта мысль осталась скрытой.»
Сравнение десятичной системы исчисления с иными позиционными системами позволило математикам и инженерам-конструкторам раскрыть удивительные возможности современных недесятичных систем счисления, обеспечившие развитие компьютерной техники.
Анна Чугайнова
Касаткин В.Н. Введение в кибернетику. Радянська школа. Киев, 1976
Шестаков А.П. Введение в информатику. Пермский университет. Пермь. 1999
Ответь на вопросы викторины «Математика»