§ 1. Системы счисления

Что же такое система счисления?

Система счисления — это форма записи чисел при помощи набора цифр. Другими словами, система счисления — это способ представления чисел. Например, в десятичной системе мы используем цифры от 0 до 9.

Системы, с которыми мы будем часто сталкиваться, изучая программирование — десятичная, двоичная и шестнадцатеричная. Прежде чем мы углубимся в этот вопрос, давайте для начала рассмотрим их общие характеристики.

Позиционные системы счисления

Основание системы счисления — это количество цифр, которые мы используем для представления чисел. Такой набор символов (чисел) часто также называют алфавитом системы счисления.

Системы счисления обычно называют в соответствии со значением их основания. Например, в десятичной системе используется 10 чисел.

В позиционных системах счисления значение (вес) цифры зависит от ее положения. Например:

10 — цифра 1 имеет значение десять.
1000 — та же цифра 1 имеет значение тысяча, поскольку занимает другое положение.

В непозиционных системах счисления значение цифр не зависит от их положения. Примером является римская система счисления. Например:

X — цифра означает десять.
ХХХ — каждая цифра имеет значение 10, а число XXX равно их сумме, т. е. 30.
LX — L = 50, X = 10, поэтому число LX = 60.

Все позиционные системы счисления представляют числа похожим образом. Для записи некоторого числа нам необходимо разбить его на сумму степеней основания данной системы. Это звучит сложнее, чем является на самом деле. Например:

1572 = 1 × 103 + 5 × 102 + 7 × 101 + 2 × 100

В данном случае мы использовали степень числа 10, поскольку это основание десятичной системы счисления. То же правило применимо и к любой другой системе счисления. Мы всегда начинаем со степени 0 и увеличиваем ее на единицу для каждой следующей позиции справа налево.

Двоичная система

Зачем нам использовать двоичные числа, если десятичная система так хорошо служила людям в течение многих лет?

Дело в том, что центральный процессор компьютера (CPU), который состоит из миллионов транзисторов, понимает только два состояния: 0 — когда транзистор выключен, 1 — когда включен. Поэтому все в компьютере сводится к единицам и нулям.

Каждое из этих значений называется битом (bit — binary digit). Каждый бит может иметь значение 1 или 0.

Десятичная система, которую мы используем в повседневной жизни, начиналась со счета на пальцах. Позднее пальцы заменились индо-арабскими символами: десятью типами знаков от 0 до 9, которые комбинировались для отображения больших чисел (например, 108).

В десятичной системе счисления каждая цифра числа может быть представлена как число, кратное 10 в некоторой степени. Давайте рассмотрим это на примере числа 408.

8 × 100 = 8
0 × 101 = 0
4 × 102 = 400

Сложив все значения, получим

8 + 0 + 400 = 408

Двоичная система похожа на десятичную, за исключением того, что основание системы равно двум, а для записи чисел используются только 0 и 1.

Точно таким же способом мы можем перевести число 110011000, которое равно 408 в двоичной системе.

(0 × 20) + (0 × 21) + (0 × 22) + (1 × 23) + (1 × 24) + (0 × 25) + (0 × 26) + (1 × 27) + (1 × 28) = 8 + 16 + 128 + 256 = 408

Преобразование десятичных чисел в двоичные

Для преобразования десятичных чисел в двоичные мы будем использовать метод деления на 2.

Каждый раз, когда мы делим некоторое число, мы получаем два числа — остаток (новое неполное делимое) и частное. Когда мы делим некоторое число на 2, то всегда получаем остаток, который равен или 0, или 1, другими словами, двоичные цифры.

При использовании метода деления на 2 мы будем продолжать делить число до тех пор, пока делимое не будет равно нулю. Остаток от первого деления — это наименьший значащий разряд числа; каждый следующий остаток от деления записывается слева от предыдущего числа.

Давайте рассмотрим преобразования числа 6210 в двоичную систему счисления.

6210 = 1111102

Сложение двоичных чисел

Сложение двоичных чисел похоже на сложение десятичных чисел, однако есть некоторые различия.

Давайте начнем счет с 010 и будем увеличивать число на единицу, пока не достигнем значения 510.

Мы видим, что при сложении двоичных чисел нужно быть очень аккуратным, поскольку перенос разряда происходит значительно чаще.

Основные правила, которые необходимо помнить при выполнении операций сложения в двоичной системе:
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 11

Для чисел с большим количество разрядов можно использовать привычное сложение столбиком.

Рассмотрим несколько примеров:

Вычитание двоичных чисел

Вычитание двоичных чисел очень похоже на сложение, за исключением того, что вместо переноса разряда мы будем брать заём.

Давайте начнем вычитать единицу от 1010 до тех пор, пока не достигнем 510.

Правила вычитания:
1 - 0 = 1
1 - 1 = 0
10 - 1 = 1

Точно так же, как и при вычитании десятичных чисел, если из меньшего числа вычитается большее, результатом будет отрицательное число.

Рассмотрим примеры:

Теперь вы знаете основы двоичных чисел:
Двоичная система счисления — это система счисления c основанием 2.
Двоичные числа представлены цифрами 0 и 1.
Каждая двоичная цифра называется «бит».
Двоичные числа можно складывать, вычитать, умножать и делить практически так же, как десятичные числа.
Крайняя левая цифра в двоичном числе называется старшим битом (most significant bit, MSB), а крайняя правая — младшим битом (least significant bit, LSB).
Двоичные данные — это заключительный этап, через который проходит ваш код, прежде чем он будет выполнен компьютером.
Когда вы пишете программу, например, на Python, компилятор переводит ее на язык более низкого уровня, как правило, на ассемблер. Затем программа преобразуется в машинный код и отправляется компьютеру для выполнения.

Шестнадцатеричная система

Шестнадцатеричная система (или система с основанием 16) — это удобный и лаконичный способ представления двоичных чисел.

Шестнадцатеричные числа часто используются для обозначения таких данных, как, например, цвет или любых других, где нам необходима более компактная запись последовательности битов.

Алфавит шестнадцатеричной системы содержит 16 цифр: 10 арабских (0…9) и первые буквы латинского алфавита A (10), B (11) , C (12) , D (13) , E (14) и F (15).

Связь между шестнадцатеричной и двоичной системой счисления

Поскольку 16 = 24, одна шестнадцатеричная цифра соответствует четырем двоичным, то есть мы можем представить четыре двоичные цифры (4 бита) при помощи одной шестнадцатеричной цифры, что значительно упрощает преобразование чисел между системами с этими основаниями.

Согласно таблице преобразования шестнадцатеричных чисел, двоичная последовательность чисел 0110 0101 0000 10112 будет выглядеть в шестнадцатеричной системе следующим образом: 650B. Это число гораздо легче читать, чем длинную последовательность битов.

promo promo
close