Допустим, необходимо посчитать количество цветов на поляне. Можно загибать пальцы, делать зарубки на дереве, как это делали древние люди, и так далее. Можно сделать вывод, что форма счета может быть любой, также, как и форма записи. Для способа записи чисел ввели такое понятие, как система счисления.
Существует два типа систем счисления:
Непозиционная
Позиционная
К таким системам счисления можно отнести египетскую и римскую системы счисления.
Пример. Число в римской системе счисления – это набор стоящих подряд заглавных латинских букв, таких как I, V, X, L, C, В и M, которые обозначают числа 1, 5, 10, 50, 100, 500 и 1000 соответственно.
Непозиционные системы счисления годны для записи числа, но при сложных вычислениях вызывают массу неудобств хотя бы потому, что в них отсутствуют единые правила формирования больших чисел.
Самые популярные в информатике позиционные системы счисления: двоичная, восьмеричная, десятичная, шестнадцатеричная.
Десятичная система счисления
Исторически сложилось, что это самая распространенная система счисления. Именно её мы используем, когда мы делаем покупки в магазине, набираем номер телефона или открываем страницу в книге. На каждой позиции может стоять только одна цифра из диапазона от 0 до 9.
Основанием (то есть, количество цифр) является число 10. Это значит, что «вес» любой цифры в числе будет кратен 10 в степени, равной позиции этой цифры. При этом позиции (их называют разрядами) отсчитываются с правого конца числа, начиная с нуля.
Пример. Чтобы разобраться подробнее, возьмем число 123. Давайте «разложим» это число по разрядам. Для этого каждую цифру числа умножим на основание системы, в данном случае число 10, возведенное в степень, равную номеру разряда. Цифра 3 стоит в нулевом разряде, цифра 2 – в первом, а цифра 1 – во втором. Получается, значение равно:
При работе с разными системами счисления, чтобы избежать путаницы, справа от числа приписывают нижний индекс с основанием: 12310.
Двоичная система счисления
Эта система счисления используется в вычислительной технике. Десятичную систему счисления в компьютерах не стали использовать, потому что требовалось производство устройств, способных работать в десяти состояниях, а это сильно увеличило бы цену и размер таких устройств.
Пример. Возьмем число 1001 – это число 9 в десятичной системе счисления. Для того, чтобы перевести число из двоичной в десятичную систему счисления, необходимо точно так же «разложить» число на разряды, т.е. каждую цифру двоичного числа умножить на основание 2, возведенное в степень, равную разряду:
Точно так же выполняется перевод из любой n-ричной системы счисления в десятичную. Для этого надо:
Определить количество разрядов;
Умножить каждую цифру n-ричной системы счисления на основание «n», возведенное в степень, равную разряду.
Пример. Посмотрим, как переводить число из десятичной системы счисления в двоичную. Пусть нужно перевести число 24010 в двоичную систему счисления. Для этого надо последовательно делить число 240 на 2, фиксируя получающиеся остатки (удобнее всего делать это «лесенкой»), пока не дойдем до последнего частного, которое на 2 уже не делится. Это будет первая цифра числа в двоичной системе. А остальные цифры – это получившиеся остатки, записанные в обратном порядке:
Осталось записать обведенные кружком цифры в обратном порядке, начиная с самой правой (выделена жирным). Получаем, что число
Точно так же выполняется перевод из десятичной системы счисления в любую n-ричную. Для этого надо:
Целую часть числа последовательно делить на основание новой системы счисления, пока не останется число или цифра, которая уже делиться не будет;
Эта оставшаяся цифра (частное) будет первой цифрой нового числа. Остальные цифры – это остатки от всех делений, записанные в обратном порядке.
Восьмеричная система счисления
Имеет основание 8, использует цифры от 0 до 7.
Для того, чтобы перевести из восьмеричной системы счисления в десятичную, необходимо умножить каждую цифру восьмеричного числа на основание 8, возведенное в степень, равную разряду.
Пример.
Перевод из десятичной системы счисления в восьмеричную осуществляется аналогично
переводу в двоичную, только делителем в данном случае является 8.
Пример. Пусть надо перевести число 16310 в восьмеричную систему:
Получаем, что:
Шестнадцатеричная система счисления
Имеет основание 16, использует цифры от 0 до 9 и буква A, B, C, D, E, F, где буква А = 10, В = 11, С = 12, D = 13, Е = 14, F = 15.
Для того, чтобы перевести из шестнадцатеричной системы счисления в десятичную, необходимо умножить каждую цифру восьмеричного числа на основание 16, возведенное в степень, равную разряду.
Пример.
Для того, чтобы перевести из десятичной системы счисления в шестнадцатеричную, нужно целую часть числа находить делением на основание новой.
Пример. 19110 переведем в шестнадцатеричную систему:
При этом 11 = B, 15 = F. Получаем, что:
Метод триад и тетрад
Для перевода чисел, записанных в восьмеричной системе в двоичный код, необходимо каждую цифру восьмеричного числа представить триадой двоичных символов.
Триады и тетрады переводятся, начиная с конца числа (т.е. с младших разрядов). Если крайние триады (тетрады) оказались неполными, они дополняются нулями. Если при переводе в двоичную систему в начале числа (слева) возникают нули, их следует отбросить (они незначащие).
Пример.
Таблица с триадами и тетрадами, которую надо знать наизусть.
Число | Триада | Тетрада |
---|---|---|
0 | 000 | 0000 |
1 | 001 | 0001 |
2 | 010 | 0010 |
3 | 011 | 0011 |
4 | 100 | 0100 |
5 | 101 | 0101 |
6 | 110 | 0110 |
7 | 111 | 0111 |
8 | 1000 | |
9 | 1001 | |
A (10) | 1010 | |
B (11) | 1011 | |
С (12) | 1100 | |
D (13) | 1101 | |
E (14) | 1110 | |
F (15) | 1111 |
Перевод из десятичной системы счисления в двоичную с помощью степенной таблицы
Рассмотрим еще один альтернативный метод перевода из десятичной системы счисления в двоичную, который заключается в использовании таблицы степеней двоек. Рассмотрим данный алгоритм подробнее:
Записываем таблицу степеней двойки в обратном порядке.
Выбираем самое большое значение степени, помещающееся в число, которое переводим в двоичную систему. Эту степень обводим.
Переходим к следующей степени двойки.
Вычитаем каждое следующее помещающееся число. Вмещающиеся степени обводим.
Продолжаем вычитать, пока не дойдем до конца таблицы.
Под обведенными степенями пишем «1», под не обведенными «0».
Записываем получившееся число.
Пример. С помощью этого метода переведем число 7910 из десятичной системы счисления в двоичную.
79 = 64 + 8 + 4 + 2 + 1
Получаем:
Арифметика в позиционных системах счисления
С первого класса вас учили производить расчеты в десятичной системе счисления, далее мы рассмотрим, как производить расчеты в произвольной позиционной системе счисления.
Все позиционные системы счисления «одинаковы», и выполнение арифметических вычислений во всех них производятся по общим правилам сложения, вычитания, умножения и деления столбиком, аналогичным правилам в десятичной системе счисления.
Сложение в позиционных системах счисления
Сложение многозначных чисел в n-ричной системе счисления производится поразрядно, начиная с младшего разряда. Если при суммировании цифр одного разряда сумма оказывается больше n – 1, то в данном разряде записывается младшая цифра суммы, а старшая цифра прибавляется к ближайшему слева разряду. При этом таблица сложения в двоичной системе счисления выглядит следующим образом:
Пример. Рассмотрим сложение чисел в двоичной системе счисления, опираясь на таблицу сложения. Маленькими цифрами сверху обозначены значения, переносимые при сложении в соседний слева разряд.
Вычитание в позиционных системах счисления
Вычитание многозначных чисел в n-ричной системе производится также столбиком. Если в очередном разряде уменьшаемого стоит цифра, меньшая чем у вычитаемого, то занимается единица у ближайшего слева ненулевого разряда. В результате к вычисляемому разряду уменьшаемого добавляется n. Если единица занималась не у соседнего слева разряда, то к промежуточным разрядам добавляется n – 1.
Пример. Рассмотрим вычитание чисел в восьмеричной системе счисления.
Умножение и деление в позиционных системах счисления
Наконец, умножение сводится к многократному сложению со сдвигом разрядов, а деление – к многократному вычитанию. Для данных операций удобно использовать таблицу умножения в двоичной системе счисления:
Пример. Рассмотрим, как умножать и делить числа в двоичной системе счисления.
Пример. Закрепим операции умножения и деления чисел в пятеричной системе счисления.
Числа Фибонначи и Фибоначчиевая система счисления
Итальянский математик Леонардо Пизанский, более известный под именем Фибоначчи, открыл удивительную последовательность чисел:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, …
В этой последовательности первые два числа равны либо 1 и 1, либо 0 и 1, а каждое последующее число получается из суммы двух предыдущих чисел:
1 = 0 +1, 2 = 1 + 1, 3 = 1 +2, 5 = 2 + 3, 8 = 3 +5, и т. д.
Пример. Запомнить правило последовательности Фибоначчи просто с помощью задачи про кроликов. Пусть пару кроликов поместили в некое место, огражденное со всех сторон стеной, чтобы узнать, сколько пар кроликов родится при этом в течение года, если природа кроликов такова, что через месяц пара кроликов производит на свет другую пару кроликов, а рождаются кролики у пары со второго месяца.
Решая эту задачу, получаем таблицу с данными, которые являются членами последовательности Фибоначчи:
Принцип разложения любого числа в Фибоначчиевой системе счисления основывается на вышеупомянутым переводе десятичного числа в двоичное с помощью степенной таблицы, но данном случае верхнюю строку таблицы заполняем числами Фибоначи в порядке убывания вместо степеней двоек. При этом нижний индекс для обозначения системы счисления выглядит следующим образом: Fib.
Пример. Рассмотрим прямое и обратное разложение числа в Фибоначчиевой системе счисления.
2510 = XFib
25 = 21 + 3 + 1
Таким образом, получаем:
10010101Fib = X10
Тогда: