Система счисления (СС) - способ кодирования числовой информации, т.е. способ записи чисел с помощью некоторого алфавита, символы которого называют цифрами.
Различают системы счисления позиционные и непозиционные. Пример позиционной системы счисления — арабская (современная десятичная), непозиционной — римская.
Таблица 3.
Позиционная СС | Непозиционная СС |
005 = 5*1 (пять) 050 = 5*10 (пятьдесят) 500 = 5*100 (пятьсот) | IX = 10-1 = 9 XI = 10+1 = 11 XX = 10+10 = 20 |
В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от её положения в числе (позиции, разряда). Количество используемых цифр называется основанием системы счисления.
Так, в десятичной системе счисления, основание которой равно 10, различают 10 арабских цифр - 0, 1, 2, ..., 9.
В вычислительной технике широко применяют двоичную, восьмеричную и шестнадцатеричную систему счисления.
Двоичная система счисления имеет основание 2, и, следовательно, ее алфавит состоит из двух цифр - 0 и 1; алфавит восьмеричной системы счисления составляют цифры 0, 1, 2, 3, 4, 5, 6, 7; шестнадцатеричной - десять арабских цифр от 0 до 9 и еще шесть символов - А (10), В (11), С (12), D (13), E (14), F (15).
Для любой позиционной системы счисления справедливо следующее правило формирования числа на основании входящих в эту систему цифр:
, (6)
или, если расписать сумму в этом выражении,
,
где
y – число;
k – основание системы счисления;
xi – цифры числа;
i – номер позиции (разряда) числа, начиная с 0.
Так, на основании формулы (6) десятичное число 638(10) представляется следующим образом:
.
Мы говорим в таком случае, что в этом числе 6 сотен, 3 десятка и 8 единиц.
Исторически, использование для счета десяти цифр связано с тем, что человечество училось считать на пальцах. На самом деле для представления любого числа достаточно алфавита, состоящего только из двух символов, что и реализуется, при хранении информации в памяти электронных устройств. Ячейка памяти в этом случае может находиться в одном из двух состояний, которые кодируются как 0 и 1. Информационная емкость такой ячейки равна 1 биту.
Перевод целых чисел из системы счисления с основанием k в десятичную систему счисления
Число, записанное в позиционной системе счисления с любым основанием, переводится в десятичную систему счисления по правилу (6).
Если, например, 45(8) – число, записанное в восьмеричной системе счисления, то
45(8)=4*81+5*80=4*8+5*1=32+5=37(10)
Число 203(5) записано в пятеричной системе счисления, тогда
203(5)=2*52+0*51+3*50=2*25+0*5+3*1=50+0+3=53(10)
Меняется только основание системы счисления, алгоритм остается неизменным.
Основание позиционной системы счисления в ней самой всегда записывается как 10; например, в двоичной системе счисления 10(2) означает число 2(10), а в восьмеричной 10(8) означает число 8(10).
Чтобы легче осуществлять перевод из системы счисления по любому основанию в десятичную, следует для начала явно пронумеровать разряды исходного числа справа налево, начиная с 0 (см. рисунок 14).
Двоичная система счисления
Двоичная (бинарная) система счисления имеет основание 2. Ее алфавит – цифры 0 и 1. Для перевода числа из двоичной системы счисления в десятичную также справедливо правило (6). Представим в десятичном виде число 1101(2), или, что то же самое, &1101 (& - амперсант, - этим символом принято указывать то, что следующая за ним запись двоичная).
1101(2)=1*23+1*22+0*21+1*20=1*8+1*4+0*2+1*1=13(10)
Рис. 14. Перевод числа из двоичной СС в десятичную. |
Но двоичная система имеет некоторые приятные особенности, т.к. коэффициентами при степенях двойки в ней могут быть только либо нули (и тогда можно просто игнорировать разряд числа, имеющий значение “0”), либо единицы (умножение на “1” также можно опустить).
Т.е. достаточно просуммировать “два в соответствующей степени” только в тех позициях двоичного числа, в которых находятся единицы. Степень же, в которую нужно возводить число 2, равна номеру позиции.
Арифметические операции в любой позиционной системе счисления также имеют общую логику.
Таблица 4.
“Круглые” числа в двоичной СС | ||||
&101 | = 5(10) | &1 | = 20 | = 1 |
+ 1 | &10 | = 21 | = 2 | |
&110 | = 6(10) | &100 | = 22 | = 4 |
+ 1 | &1000 | = 23 | = 8 | |
&111 | = 7(10) | &10000 | = 24 | = 16 |
Каждый разряд двоичного числа имеет информационную емкость 1 бит. На основании одного двоичного разряда можно закодировать только два десятичных числа - &0=0(10), &1=1(10), на основании двух двоичных разрядов можно закодировать уже четыре десятичных числа – &00=0(10), &01=1(10) , &10=2(10), &11=3(10) , тремя двоичными разрядами можно представить восемь десятичных чисел и т.д. в соответствии с формулой Хартли (2).
Таблица 5.
20 | десятичное | 22 | 21 | 20 | десятичное | ||
21 | 20 | десятичное | |||||
Мы видим, что добавление каждого следующего разряда вдвое увеличивает количество двоичных комбинаций. Графически это может быть представлено так:
Рис. 15. Каждый следующий разряд двоичного числа удваивает количество возможных комбинаций из нулей и единиц.
Таблицу степеней числа 2 от 20 до 210 следует знать наизусть.
Таблица 6.
N | |||||||||||
2N |
Открытие двоичного способа представления чисел приписывают китайскому императору Фо Ги, жизнь которого относится к 4-му тысячелетию до новой эры. Известный немецкий математик Лейбниц (1646-1716) в 1697 г. разработал правила двоичной арифметики. Он подчеркивал, что "вычисление с помощью двоек, то есть 0 и 1, в вознаграждение его длиннот, является для науки основным и порождает новые открытия, которые оказываются полезными впоследствии, даже в практике чисел, а особенно в геометрии: причиной чего служит то обстоятельство, что при сведении чисел к простейшим началам, каковы 0 и 1, всюду выявляется чудесный порядок".
Блестящие предсказания Лейбница сбылись только через 2,5 столетия, когда именно двоичная система счисления нашла применение в качестве универсального способа кодирования информации в компьютерах.