Недавно мы уже рассказывали о том, что такое системы счисления (СС) и как работать с ними в рамках ЕГЭ по информатике. Если пропустил – почитать можно здесь: Системы счисления для ЕГЭ по информатике: описание, виды, способы перевода.
Даже если ты только начинаешь готовиться к экзамену, тебе точно уже приходилось слышать что-то о двоичной системе — первой СС, которую вообще изучают на школьных уроках информатики. Это та самая, где нолики и единички 🙂
Для ЕГЭ по информатике важно не только понимать, как устроена двоичная СС, но и
- уметь переводить из 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СС — работает только в случае с переводом из четверичной, восьмеричной и шестнадцатеричной систем
- Записываем заданное число
- Расставляем под каждой его цифрой разряды справа налево, начиная с 0
- Берем первую цифру, умножаем ее на основание СС (N) в степени разряда
- Проделываем так с каждой
- Полученные числа складываем
- Получаем десятичное значение
Дальше все просто – переводим полученный результат в 2СС.
- Делим заданное число на N в столбик, высчитываем остаток, обводим его в кружок
- Получившееся частное снова делим на N. Продолжаем деление, пока не получим значение меньше N.
- Проверяем обведенные остатки, включая последнее частное (они все должны быть меньше N), и записываем их справа налево.
Из 2СС в любую СС
Тут все то же самое, только наоборот:
- вариант № 1: сначала перевести исходное число в 10CC, а затем уже из нее — во любую другую
- вариант № 2: сразу выполнить перевод в 4CC, 8CC и 16CC
Алгоритм перевода из NCC в 2СС смотри выше.
Полезные свойства 2CC
- Четные числа в 2СС оканчиваются на 0, нечетные — на 1
- Числа, кратные 2k, имеют k нулей в конце
Пример: 16 = 24, в 2СС это 100002 - Число вида 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 трехзначна.
Итоги
Двоичная СС — простой, но очень важный инструмент работы с информацией. Хорошие новости в том, что на ЕГЭ по информатике тебе не встретятся суперсложные задачи, для решения которых понадобится идеальное знание всех СС и умение моментально переводить числа из одной в другую 🙂
Для успеха на экзамене понадобится лишь умение правильно переводить из одной СС в другую (например, из двоичной в десятичную) + уметь выполнять несложные операции — сложение, вычитание и т. д.
Бесплатный вводный урок в школе insperia