Особенности двоичной системы счисления

от автора

Обложка статьи

Недавно мы уже рассказывали о том, что такое системы счисления (СС) и как работать с ними в рамках ЕГЭ по информатике. Если пропустил – почитать можно здесь: Системы счисления для ЕГЭ по информатике: описание, виды, способы перевода.

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

Для ЕГЭ по информатике важно не только понимать, как устроена двоичная СС, но и

  • уметь переводить из 2СС в другие системы счисления,
  • уметь переводить из других систем в 2СС,
  • знать, как решать более сложные задачи с использованием разных CC (задание 14 ЕГЭ), и так далее.

Немного базы

Напоминаем на случай, если теория уже подзабылась. 

Система счисления — это способ записи чисел с использованием определенного набора символов и правил. Все СС делятся на два типа:

1. Позиционные — значение цифры в числе зависит от ее позиции (разряда). Например, запись “325” будет означать число 325 только в том случае, если все цифры в этой записи будут стоять именно в таком порядке: сначала 3, затем 2, а только потом – 5. Если позиции цифр поменяются (например, мы напишем 532 вместо 325), значение изменится.

Почему так происходит? 

В позиционной десятичной СС каждая цифра числа (3, 2 и 5) умножается на соответствующую степень 10, определяемую её позицией, или разрядом. Цифра 3 стоит на сотнях (третья позиция слева, а 100 – это 102). Цифра 2 стоит на десятках (10 = 101), а 5 – на единицах (первая позиция слева, 100).

Умножив все цифры на нужную степени десятки, мы получим 3 числа: 300, 20 и 5. Дальше их нужно просто сложить между собой.

Таким образом, число 325 по сути отражает результат следующего вычисления:

3 * 100 + 2 * 10 + 5 * 1 = 325

Если попробовать поменять цифры местами, результат будет уже совсем другим:

5 * 100 + 3 * 10 + 2 * 1 = 532

2. Непозиционные — значение каждой цифры в числе не зависит от ее позиции. В этом случае все цифры просто обозначают определенное количество и не умножаются между собой, а просто складываются.

Наиболее известный пример непозиционной СС – римские цифры. Посмотрим на примере:

VI (римская) = 6 (десятичная)

Почему: V – это символ для записи цифры 5, I – для записи цифры 1. Складывая их между собой (5 + 1), мы и получаем 6. 

В десятичной CC запись “51” (аналогичная римской VI) обозначала бы число 51, поскольку цифра 5 встала на позицию десятков ( = превратилась из 5 в 50).  В римской же позиция цифры, как мы уже отметили выше, значения не имеет, поэтому пятерка остается пятеркой.

Двоичная СС является позиционной. Отличие от десятичной заключается лишь в том, что основанием будет уже не 10, а 2. Соответственно, разряды будут не 100, 101, 102, а 20, 21, 22 и так далее.

Посмотрим на примере: число 11012 представляет результат следующего вычисления

1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 11012

Полученный результат можно представить в десятичной СС:

1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 8 + 4 + 0 + 1 = 1310

Особенности двоичной системы

Как тебе уже наверняка известно, в алфавите двоичной СС есть только два символа: 0 и 1. Каждая из них называется битом, от английского binary digit — ‘двоичная цифра’. Например, 10112 состоит из четырёх битов.

Фактически алфавит 2СС отражает два физических состояния электронных устройств:

  • 0 — отсутствие сигнала, = нет тока
  • 1 — наличие сигнала, = есть ток

Эти состояния используются для записи данных в память устройства (чаще всего компьютера). 

Как это происходит: транзисторы (электронные компоненты, работающие как крошечные переключатели) управляют подачей электрического сигнала, записывая каждую единицу данных в виде комбинаций 0 и 1, соответствующих состояниям «выключено» и «включено». Так, число 123 будет записано в память компьютера следующим образом:

  • 12310 = 11110112
  • каждая цифра = один транзистор, отвечающий за ее передачу в память
  • включенные транзисторы пропустят ток (передадут в память 1), а выключенные — нет (передадут 0)
  • итоговая настройка транзисторов будет выглядеть так: 1 [вкл], 1 [вкл], 1 [вкл], 1 [вкл], 0 [выкл], 1 [вкл], 1 [вкл]

Любой компьютер в целом «понимает» только двоичную CC. Все, что ты видишь на своем устройстве — тексты, картинки, видео — все это на самом деле записано в памяти устройства в виде нулей и единичек. Но как это происходит?

  • Текст: каждая буква, цифра или символ текста преобразуется в двоичный код с помощью таблиц кодировки. Например, с помощью таблицы ASCII латинскую букву A можно записать как 010000012, буква B — как 010000102 и так далее.
  • Картинки: все изображения состоят из пикселей, каждый из которых имеет цвет, выраженный в числовом формате — например, RGB. Эти значения преобразуются в двоичный код. Так, информация о пикселе красного цвета будет записана в памяти компьютера следующим образом: 111111112 000000002 000000002.
  • Звук: аудиофайлы хранятся в виде дискретных чисел, представляющих амплитуду звуковых волн в каждый момент времени. Эти значения также переводятся в двоичный код.

Перевод из двоичной системы и наоборот

Из любой системы счисления в 2СС

Есть два способа перевести число из любой системы (NCC) в двоичную:

  • сначала перевести исходное число в 10CC, а затем уже из нее — во вторичную
  • сразу выполнить перевод в 2СС — работает только в случае с переводом из четверичной, восьмеричной и шестнадцатеричной систем
  1.  Записываем заданное число
  2. Расставляем под каждой его цифрой разряды справа налево, начиная с 0
  3. Берем первую цифру, умножаем ее на основание СС (N) в степени разряда
  4. Проделываем так с каждой 
  5. Полученные числа складываем
  6. Получаем десятичное значение
Пример решения

Дальше все просто – переводим полученный результат в 2СС.

  1. Делим заданное число на N в столбик, высчитываем остаток, обводим его в кружок
  2. Получившееся частное снова делим на N. Продолжаем деление, пока не получим значение меньше N.
  3. Проверяем обведенные остатки, включая последнее частное (они все должны быть меньше N), и записываем их справа налево.

Из 2СС в любую СС

Тут все то же самое, только наоборот:

  • вариант № 1: сначала перевести исходное число в 10CC, а затем уже из нее — во любую другую
  • вариант № 2: сразу выполнить перевод в 4CC, 8CC и 16CC

Алгоритм перевода из NCC в 2СС смотри выше.

Полезные свойства 2CC

  1. Четные числа в 2СС оканчиваются на 0, нечетные — на 1
  2. Числа, кратные 2k, имеют k нулей в конце
    Пример: 16 = 24, в 2СС это 100002
  3. Число вида 2k − 1 состоит из k единиц
    Пример: 23 – 1 = 7, в 2СС это 1112  

Системы счисления в ЕГЭ по информатике

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

В этом задании обычно требуется определить основание системы счисления, перевести числа между разными CC, решить уравнение с числами, записанными в разных системах, и т. д.

Вот несколько примеров прототипов, которые могут встретиться тебе на ЕГЭ.

Примеры прототипов, которые могут встретиться в ЕГЭ

1. В системе счисления с некоторым основанием десятичное число 144 записывается в виде 264. Укажите это основание. 

2. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22.

3. Запись числа 2105 в некоторой системе счисления выглядит так: 313N. Найдите основание системы счисления N. 

4. Запись числа 234 в системе счисления с основанием N содержит 3 цифры и оканчивается на 6. Чему равно основание системы счисления?

5. Укажите наименьшее основание системы счисления, в которой запись числа 50 трехзначна.

Итоги

Двоичная СС — простой, но очень важный инструмент работы с информацией. Хорошие новости в том, что на ЕГЭ по информатике тебе не встретятся суперсложные задачи, для решения которых понадобится идеальное знание всех СС и умение моментально переводить числа из одной в другую 🙂

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

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