В настоящий момент – наиболее употребительная в информатике, вычислительной технике и смежных отраслях система счисления. Использует две цифры – 0 и 1, а также символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной части.
Пример для числа 101.112 в двоичной системе счисления:
Число 101.112 в двоичной системе счисления означает одну четвёрку, одну единицу, одну половинку и одну четвертинку. Если сложить, получится всего 5.7510.
Для представления этих чисел в цифровых системах достаточно иметь электронные схемы, которые могут принимать два состояния, четко различающиеся значением какой-либо электрической величины – потенциала или тока. Одному из значений этой величины соответствует цифра 0, другому 1. Относительная простота создания электронных схем с двумя электрическими состояниями и привела к тому, что двоичное представление чисел доминирует в современной цифровой технике. При этом 0 обычно представляется низким уровнем потенциала, а 1 – высоким уровнем. Такой способ представления называется положительной логикой.
История развития двоичной системы счисления – одна из ярких страниц в истории арифметики. Официальное «рождение» двоичной арифметики связывают с именем Г. В. Лейбница, опубликовавшего статью, в которой были рассмотрены правила выполнения всех арифметических операций над двоичными числами. До начала тридцатых годов XX века двоичная система счисления оставалась вне поля зрения прикладной математики. Потребность в создании надежных и простых по конструкции счетных механических устройств и простота выполнения действий над двоичными числами привели к более глубокому и активному изучению особенностей двоичной системы как системы, пригодной для аппаратной реализации. Первые двоичные механические вычислительные машины были построены во Франции и Германии. Утверждение двоичной арифметики в качестве общепринятой основы при конструировании ЭВМ с программным управлением состоялось под несомненным влиянием работы А. Бекса, Х. Гольдстайна и Дж. фон Неймана о проекте первой ЭВМ с хранимой в памяти программой, написанной в 1946 году. В этой работе наиболее аргументировано обоснованы причины отказа от десятичной арифметики и перехода к двоичной системе счисления как основе машинной арифметики.
Шестнадцатеричная система счисления
Использует шестнадцать цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 в их обычном смысле, а затем A=10, B=11, C=12, D=13, E=14, F=15. Также использует символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Внедрена американской корпорацией IBM. Широко используется в программировании для IBM-совместимых компьютеров. С другой стороны, в некоторых языках сохранились и следы использования этой системы счисления в прошлом. Например, в романских языках (испанском, французском и др.) числительные от 11 до 16 образуются по одному правилу, а от 17 до 19 – по другому. А в русском языке известен пуд, равный 16 килограммам.
Числа, не зависимо от системы счисления, всегда означают количество чего-нибудь. Собственно, записать число (в любой системе счисления) - это всего лишь способ записать это количество. Поэтому, можно составить таблицу соответствия между числами в разных системах счисления.
Таблица соответствия записи чисел в различных системах счисления
BIN | OCT | DEC | HEX |
1 000 | |||
1 001 | |||
1 010 | A | ||
1 011 | B | ||
1 100 | C | ||
1 101 | D | ||
1 110 | E | ||
1 111 | F | ||
10 000 |
Существуют также нецелочисленные позиционные системы счисления. К таким относится система счисления с основанием е=2, 718281828.. – система, обладающая наибольшей плотностью записи информации
Перевод чисел из одной системы в другую
Перевод из десятичной СС в любую другую
При переводе чисел из десятичной системы счисления в любую другую, всегда отдельно (по разным правилам) переводится целая и дробная части.
Перевод целой части
Для того, чтобы перевести число из десятичной системы счисления в любую другую, нужно выполнять целочисленное деление исходного числа на основание той системы счисления, в которую нужно перевести число. При этом важен остаток от деления и частное. Частное нужно делить на основание до тех пор, пока не останется 0. После этого все остатки нужно выписать в обратном порядке – это и будет число в новой системе счисления.
Пример: перевод числа 25 из десятичной системы счисления в двоичную будет выглядеть следующим образом:
Выписав остатки в обратном порядке, получим 2510=110012.
Если задуматься, то можете легко заметить, что при переводе абсолютно любого десятичного числа в другую систему счисления самый последний остаток (то есть, самая первая цифра в результате) всегда будет равен самому последнему частному, которое оказалось меньше основания той системы счисления, в которую мы переводим число. Поэтому, деление часто останавливают раньше, чем частное станет равным нулю – в тот момент, когда частное станет просто меньше основания.
Пример: перевод 39310 в шестнадцатеричную систему счисления.
Выписав остатки в обратном порядке, получим 39310=18916.
Нужно понимать, что остатки получаются в десятичной системе счисления. При делении на 16 могут появиться остатки не только от 0 до 9, но также и остатки от 10 до 15, которые заменятся соответственно цифрам A-F. Каждый остаток - это всегда ровно одна цифра в той системе счисления, в которую осуществляется перевод.
Перевод дробной части
При переводе дробной части – в отличие от перевода целой части – нужно не делить, а умножать на основание той системы счисления, в которую мы переводим. При этом каждый раз отбрасываются целые части, а дробные части снова умножаются. Собрав целые части в том порядке, в каком они появились, получается дробная часть числа в нужной системе счисления.
Одна операция умножения даёт ровно один дополнительный знак в системе счисления, в которую осуществляется перевод.
При этом существует два условия завершения процесса:
1) в результате очередного умножения вы получили ноль в дробной части. Это означает, что число перевелось из десятичной системы счисления в нужную точно.
2) не все числа можно перевести точно. В таком случае обычно переводят с некоторой точностью. При этом сначала определяют, сколько знаков после запятой будет нужно – именно такое количество раз и нужно будет выполнить операцию умножения.
Вот пример перевода числа 0.3910 в двоичную систему счисления. Точность - 8 разрядов (в данном случае точность перевода выбрана произвольно):
Если выписать целые части в прямом порядке, то получим 0.3910=0.011000112.
Самый первый ноль (на рисунке перечёркнут синим) выписывать не нужно – так как он относится не к дробной части, а к целой.
Вот так будет выглядеть перевод числа 0.3910 в шестнадцатеричную систему счисления. Точность - 8 разрядов в данном случае точность снова выбрана произвольно:
Если выписать целые части в прямом порядке, то получим 0.3910=0.63D700A316.
При этом Вы, наверное, заметили, что целые части при умножении получаются в десятичной системе счисления. Эти целые части, полученные при переводе дробной части числа следует интерпретировать точно так же, как и остатки при переводе целой части числа. То есть, если при переводе в шестнадцатеричную систему счисления целые части получились в таком порядке: 3, 13, 7, 10, то соответствующее число будет равно 0.3D7A16.