Перейти к содержанию
Educora
Средний7–9 классы22 мин14 / 59

Системы счисления: позиционные системы и двоичная система

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

Проверь себя
В этом уроке ты узнаешь
  • Отличать непозиционные системы от позиционных, читать и записывать римские числа
  • Записывать число в развёрнутой форме и переводить из любой системы в десятичную
  • Переводить десятичные целые числа и дроби в двоичную систему, а двоичные — в десятичную
  • Находить количество цифр, нулей и единиц в двоичной записи, наибольшее и наименьшее k-значные числа в данной системе

На циферблате часов написано IX, в начале главы книги — XIV, а в памяти компьютера — 1001. Всё это числа, просто записанные на разных «языках». И запись 101 не всегда означает «сто один»: в десятичной системе это сто один, а в двоичной — 5. Чтобы узнать значение числа, нужно знать, в какой системе счисления оно записано. На этом уроке разберём, как устроены системы счисления, как переводить числа из любой системы в десятичную и из десятичной в двоичную и как решать задачи «сосчитай нули и единицы», которые часто встречаются в заданиях ГЭЦ.

Непозиционные системы: римские цифры

Определение
Система счисления

Совокупность правил записи и чтения чисел с помощью знаков — цифр. В непозиционной системе значение цифры не зависит от её места в записи числа, в позиционной — зависит.

Самая простая непозиционная система — счёт палочками: ||||| = 5. Самая известная — римские цифры: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. В числе XX оба X означают 10: цифра не становится в 10 раз больше, если стоит левее. Правила такие: цифры обычно пишут от больших к меньшим и складывают; меньшая цифра перед большей вычитается (только в парах IV, IX, XL, XC, CD, CM); одна и та же цифра подряд пишется не больше трёх раз, а V, L и D вообще не повторяются.

Римские цифры

1) Запиши числа MMXXVI, XLIX и CDXCIV в десятичной системе.
2) Запиши число 1994 римскими цифрами.

Показать решение
1) MMXXVI = 1000 + 1000 + 10 + 10 + 5 + 1 = 2026.
XLIX = XL + IX = (50 − 10) + (10 − 1) = 40 + 9 = 49.
CDXCIV = CD + XC + IV = 400 + 90 + 4 = 494.
2) Раскладываем число по разрядам: 1994 = 1000 + 900 + 90 + 4 = M + CM + XC + IV = MCMXCIV.

Позиционная система: основание и развёрнутая запись

В позиционной системе у каждой цифры два свойства: её собственное значение и разряд, в котором она стоит. Количество цифр системы — её основание (b). В системе с основанием b используются цифры 0, 1, …, b − 1, а веса разрядов растут справа налево: 1, b, b², b³, … Основание пишут маленьким нижним индексом: 352₆, 1101₂. В задачах системы часто называют по основанию: «2-ичная», «8-ричная», «16-ричная». В любой системе само основание записывается как 10: 10₂ = 2, 10₆ = 6. Цифры могут обозначаться и буквами: в наборе {0, 1, 2, k, m} 5 цифр, значит, это 5-ричная система (k = 3, m = 4); такие задачи подробно разобраны на уроке «Системы счисления: задачи с неизвестным основанием».

N = aₖ·bᵏ + aₖ₋₁·bᵏ⁻¹ + … + a₁·b + a₀
где:
  • Nзначение числа в десятичной системе
  • bоснование системы (b ≥ 2)
  • aᵢцифра в i-м разряде, 0 ≤ aᵢ ≤ b − 1
  • kномер старшего разряда: количество цифр − 1

Развёрнутая запись числа. Разряды нумеруются справа налево, начиная с 0. Вычислив эту сумму, мы переводим число из любой системы в десятичную.

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

Переведи в десятичную систему: 1) 1203₄; 2) 352₆; 3) 2011₃.

Показать решение
Умножаем каждую цифру на вес её разряда.
1) 1203₄ = 1·4³ + 2·4² + 0·4 + 3 = 64 + 32 + 0 + 3 = 99.
2) 352₆ = 3·6² + 5·6 + 2 = 108 + 30 + 2 = 140.
3) 2011₃ = 2·3³ + 0·3² + 1·3 + 1 = 54 + 0 + 3 + 1 = 58.

Из развёрнутой записи следуют два полезных вывода. У наибольшего k-значного числа все цифры равны b − 1: прибавив 1, получим единицу и k нулей, то есть bᵏ. Наименьшее k-значное число — единица и k − 1 нулей, то есть bᵏ⁻¹.

Nₘₐₓ = bᵏ − 1, Nₘᵢₙ = bᵏ⁻¹
где:
  • kколичество цифр
  • bоснование системы

Наибольшее и наименьшее k-значные числа в системе с основанием b. Всего таких чисел bᵏ − bᵏ⁻¹ = (b − 1)·bᵏ⁻¹.

Наибольшее и наименьшее числа

1) Запиши наибольшее и наименьшее трёхзначные числа в 5-ричной системе и переведи их в десятичную.
2) Сколько четырёхзначных чисел в двоичной системе?
3) Возможна ли запись 285₈?

Показать решение
1) Наибольшая цифра — 4: 444₅ = 4·25 + 4·5 + 4 = 124 = 5³ − 1. Наименьшее: 100₅ = 25 = 5².
2) От 1000₂ = 8 до 1111₂ = 15: 2⁴ − 2³ = 8 чисел.
3) Нет: в 8-ричной системе цифры 0–7, цифры 8 нет.

Из десятичной в двоичную и обратно

В двоичной системе всего две цифры — 0 и 1, а веса разрядов — степени двойки. Именно в ней работает компьютер: один разряд — это один бит. Если знать наизусть таблицу ниже, любые задачи на системы счисления решаются быстрее.

n2ⁿn2ⁿ
01664
127128
248256
389512
416101024
532112048
Степени двойки — веса двоичных разрядов
  1. 1
    Раздели

    Раздели число на 2, запиши неполное частное и остаток (0 или 1).

  2. 2
    Повтори

    Снова дели частное на 2, пока частное не станет равным 0.

  3. 3
    Прочитай снизу вверх

    Выпиши остатки от последнего к первому: первый остаток — младший разряд.

  4. 4
    Проверь

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

N = b·q + r, 0 ≤ r ≤ b − 1
где:
  • qнеполное частное
  • rостаток — последняя цифра числа в системе с основанием b

Метод деления работает для любого основания: делим на b. Короткое следствие: двоичное число, оканчивающееся на 0, чётное, а на 1 — нечётное.

Перевод в двоичную и обратно

1) Переведи 77 в двоичную систему.
2) Переведи 110101₂ в десятичную систему.
3) Переведи 200 в двоичную, разложив его на степени двойки.

Показать решение
1) 77 : 2 = 38, остаток 1
38 : 2 = 19, остаток 0
19 : 2 = 9, остаток 1
9 : 2 = 4, остаток 1
4 : 2 = 2, остаток 0
2 : 2 = 1, остаток 0
1 : 2 = 0, остаток 1
Снизу вверх: 77 = 1001101₂. Проверка: 64 + 8 + 4 + 1 = 77 ✓
2) Складываем веса только тех разрядов, где стоит 1: 110101₂ = 32 + 16 + 4 + 1 = 53.
3) Наибольшая степень, не превосходящая 200, — 128: 200 − 128 = 72; 72 − 64 = 8; 8 − 8 = 0.
200 = 2⁷ + 2⁶ + 2³ = 11001000₂.
Интерактив
Загрузка симуляции…
Нажимай на биты, чтобы собрать число, и смотри его десятичное, восьмеричное и шестнадцатеричное значения. Режим «Деление на 2» показывает метод деления по шагам.

Дробные числа

Разряды после запятой имеют веса b⁻¹, b⁻², b⁻³, …; в двоичной системе это ½ = 0,5, ¼ = 0,25, ⅛ = 0,125, 1/16 = 0,0625. Чтобы перевести десятичную дробь в двоичную, дробную часть последовательно умножают на 2: целая часть каждого произведения (0 или 1) — очередная цифра, а дробную часть снова умножают. На этот раз цифры читают сверху вниз. Целая часть переводится отдельно, делением.

Перевод дробей

1) Переведи 0,1011₂ в десятичную систему.
2) Переведи 5,75 в двоичную систему.

Показать решение
1) 0,1011₂ = 1·½ + 0·¼ + 1·⅛ + 1·1/16 = 0,5 + 0,125 + 0,0625 = 0,6875.
2) Целая часть: 5 = 101₂.
Дробная часть: 0,75 · 2 = 1,5 → 1; 0,5 · 2 = 1,0 → 1; дробная часть стала 0, останавливаемся.
Сверху вниз: 0,75 = 0,11₂.
Ответ: 5,75 = 101,11₂. Проверка: 4 + 1 + 0,5 + 0,25 = 5,75 ✓

Сколько цифр, нулей и единиц в двоичной записи

В заданиях ГЭЦ часто спрашивают: сколько цифр в двоичной записи числа, сколько в ней единиц и нулей? Переводить число целиком не нужно — достаточно записать его как сумму различных степеней двойки. Каждая степень даёт одну единицу, старшая степень определяет длину записи, а во всех остальных разрядах стоят нули.

2ⁿ = 100…0₂ (1 и n нулей), 2ⁿ − 1 = 11…1₂ (n единиц)
где:
  • nпоказатель степени

Число нулей = количество цифр − число единиц. Например, 2⁹ − 1 = 511 = 111111111₂ — девять единиц.

2ᵏ⁻¹ ≤ N < 2ᵏ
где:
  • Nнатуральное число
  • kколичество цифр в двоичной записи N

Если неравенство выполняется, в двоичной записи N ровно k цифр. Например, 512 ≤ 1000 < 1024, поэтому 1000 = 1111101000₂ — десятизначное число.

Закрытое задание в стиле ГЭЦ

На сколько в двоичной записи числа 300 нулей больше, чем единиц?
A) 1 B) 2 C) 3 D) 4 E) 5

Показать решение
Раскладываем 300 на степени двойки: 300 − 256 = 44; 44 − 32 = 12; 12 − 8 = 4; 4 − 4 = 0.
300 = 2⁸ + 2⁵ + 2³ + 2² = 100101100₂.
Старшая степень 2⁸ → 9 цифр; четыре степени → четыре единицы; нулей: 9 − 4 = 5.
5 − 4 = 1. Правильный ответ: A) 1.
Числа, заданные степенями

1) Сколько нулей в двоичной записи числа 2¹⁰ + 2⁴ + 1?
2) Сколько единиц в двоичной записи числа 2⁹ − 1?

Показать решение
1) 1 = 2⁰, значит, три различные степени → три единицы; старшая степень 2¹⁰ → 11 цифр. Нулей: 11 − 3 = 8 (10000010001₂).
2) 2⁹ − 1 = 511 = 111111111₂ — 9 единиц.

То же самое умеет считать программа: число делится на 2, и на каждом шаге проверяется остаток. В письменном задании экзамена число вводится с клавиатуры, и первая строка программы — n = int(input()); здесь, чтобы программа работала в браузере, взято n = 300. Более сложные случаи (квадраты, 2ⁿ − 2ᵐ) разобраны на уроке «Системы счисления: задачи с неизвестным основанием».

Python
n = 300
ones = 0
zeros = 0
while n > 0:
    if n % 2 == 1:
        ones = ones + 1
    else:
        zeros = zeros + 1
    n = n // 2
print(ones, zeros)
▸ Ожидаемый результат
4 5
300 = 100101100₂: четыре единицы, пять нулей.

Дальше: на уроке «Восьмеричная и шестнадцатеричная системы счисления» научимся коротко записывать двоичные числа, а на уроке «Арифметические действия в различных системах счисления» — считать в этих системах столбиком.

Главное

  • В непозиционной системе (римские цифры) значение цифры не зависит от места; в позиционной вес каждого разряда — степень основания.
  • В системе с основанием b цифры 0…b − 1; развёрнутая запись N = aₖ·bᵏ + … + a₁·b + a₀ переводит число из любой системы в десятичную.
  • Из десятичной в двоичную: дели на 2 и читай остатки снизу вверх; дробную часть умножай на 2 и читай целые части сверху вниз.
  • Наибольшее k-значное число равно bᵏ − 1, наименьшее — bᵏ⁻¹.
  • Число единиц в двоичной записи равно числу различных степеней двойки; количество цифр находят из 2ᵏ⁻¹ ≤ N < 2ᵏ; нули = цифры − единицы.

Проверь себя

Вопросов: 12. Каждый правильный ответ приносит XP.

1 / 12
Какая система счисления непозиционная?