📚 Информатика 10 класс

§ 12. Арифметические операции в позиционных системах счисления

Давайте разберемся, как компьютеры считают. Интересный парадокс: несмотря на то, что компьютер работает только с нулями и единицами, он способен обрабатывать числа в любых системах счисления. Как это вообще возможно?

Универсальный язык вычислений: разные системы, единая логика

Универсальный язык вычислений: разные системы, единая логика

Универсальность арифметических правил

Арифметические операции в позиционных системах счисления с основанием q выполняются по правилам, аналогичным правилам, действующим в десятичной системе счисления.

💡 Ключевая идея

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

🎯 Для чего это нужно?

В начальной школе для обучения счёту используют таблицы сложения и умножения. Подобные таблицы можно составить для любой позиционной системы счисления — и это именно то, чем мы займемся!

12.1. Сложение чисел в системе счисления с основанием q

Помните, как в начальной школе вы зубрили таблицу сложения? Это был фундамент для всей арифметики. Оказывается, для любой системы счисления с основанием q можно составить аналогичную таблицу.

Таблицы сложения для разных систем

Троичная система (основание 3)

Используются только цифры 0, 1, 2

+  | 0 | 1 | 2
---|---|---|---
0  | 0 | 1 | 2
1  | 1 | 2 | 10
2  | 2 | 10| 11

Обратите внимание: 1 + 2 = 10₃. Почему? Потому что мы достигли основания системы (3), и нужно перейти к следующему разряду. Это как в десятичной: 9 + 1 = 10.

Восьмеричная система (основание 8)

Используются цифры от 0 до 7

+  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
---|---|---|---|---|---|---|---|---
0  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
1  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10
2  | 2 | 3 | 4 | 5 | 6 | 7 | 10| 11
3  | 3 | 4 | 5 | 6 | 7 | 10| 11| 12
4  | 4 | 5 | 6 | 7 | 10| 11| 12| 13
5  | 5 | 6 | 7 | 10| 11| 12| 13| 14
6  | 6 | 7 | 10| 11| 12| 13| 14| 15
7  | 7 | 10| 11| 12| 13| 14| 15| 16
Поразрядное сложение: построение числа от младших разрядов к старшим

Поразрядное сложение: построение числа от младших разрядов к старшим

🔢 Алгоритм сложения

Чтобы в системе счисления с основанием q получить сумму S двух чисел A и B, надо просуммировать образующие их цифры по разрядам i справа налево:

  • Если ai + bi < q, то si = ai + bi, старший (i + 1)-й разряд не изменяется
  • Если ai + bi ≥ q, то si = ai + bi – q, старший (i + 1)-й разряд увеличивается на 1

Примеры сложения

Троичная система

    1 0 0 2 0 2₃
  + 1 0 1 0 2₃
  _____________
    1 1 1 0 1 1₃

Восьмеричная система

    1 2 3 4 5₈
  +   2 4 4 3₈
  ___________
    1 5 0 1 0₈

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

    F E 1 2 A 9₁₆
  +   2 3 5 2 8₁₆
  _______________
  1 0 0 4 7 D 1₁₆

12.2. Вычитание чисел в системе счисления с основанием q

Вычитание — это обратная сторона сложения. Алгоритм следует той же логике, но в обратном направлении.

🔢 Алгоритм вычитания

Чтобы в системе счисления с основанием q получить разность R двух чисел A и B, надо вычислить разности образующих их цифр по разрядам i справа налево:

  • Если ai ≥ bi, то ri = ai – bi, старший (i + 1)-й разряд не изменяется
  • Если ai < bi, то ri = ai – bi + q, старший (i + 1)-й разряд уменьшается на 1 (выполняется заём в старшем разряде)

Примеры вычитания

Троичная система

    1 0 0 1 1 0₃
  -   1 0 1 0 1₃
  _____________
      2 0 0 0 2₃

Восьмеричная система

    1 7 3 4 5₈
  -   2 4 4 3₈
  ___________
    1 4 7 0 2₈

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

    F E 1 2 A 9₁₆
  -   2 3 5 2 8₁₆
  _______________
    F B D D 8 1₁₆

🤔 Вопрос для размышления

Сможешь объяснить младшему брату или сестре, почему при вычитании в восьмеричной системе из 5 нельзя вычесть 6 без заёма из старшего разряда?

12.3. Умножение чисел в системе счисления с основанием q

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

Таблицы умножения

Троичная система

×  | 0 | 1 | 2
---|---|---|---
0  | 0 | 0 | 0
1  | 0 | 1 | 2
2  | 0 | 2 | 11

Заметили? 2 × 2 = 4₁₀ = 11₃ (одна тройка и одна единица)

Восьмеричная система

×  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
---|---|---|---|---|---|---|---|---
0  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
1  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
2  | 0 | 2 | 4 | 6 | 10| 12| 14| 16
3  | 0 | 3 | 6 | 11| 14| 17| 22| 25
4  | 0 | 4 | 10| 14| 20| 24| 30| 34
5  | 0 | 5 | 12| 17| 24| 31| 36| 43
6  | 0 | 6 | 14| 22| 30| 36| 44| 52
7  | 0 | 7 | 16| 25| 34| 43| 52| 61
Умножение столбиком: комбинация поразрядных произведений

Умножение столбиком: комбинация поразрядных произведений

🔢 Умножение многозначного числа на однозначное

Чтобы в системе счисления с основанием q получить произведение M многозначного числа A и однозначного числа b, надо вычислить произведения b и цифр, образующих число A, по разрядам i справа налево:

  • Если ai · b < q, то mi = ai · b, старший (i + 1)-й разряд не изменяется
  • Если ai · b ≥ q, то mi = ai · b mod q, старший (i + 1)-й разряд увеличивается на ai · b div q (где div — операция целочисленного деления)

Примеры умножения на однозначное число

Троичная система

      2 0 2₃
    ×     2₃
    _______
      1 1 1 1₃

Проверка: 2 0 2₃ = 20₁₀, 20₁₀ × 2 = 40₁₀ = 1 1 1 1₃ ✓

Восьмеричная система

      2 4 6₈
    ×     5₈
    _______
      1 4 7 6₈

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

      A D 9 3₁₆
    ×         9₁₆
    _____________
      6 1 A 2 B₁₆

Умножение многозначных чисел "столбиком"

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

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

Троичная система

        2 0 2 0₃
      ×   2 1 0₃
      ___________
          2 0 2₃
    +   1 1 1 1₃
      ___________
      1 2 0 1 2 0 0₃

Восьмеричная система

        2 4 6 0₈
      ×     1 5₈
      ___________
          1 4 7 6₈
    +     2 4 6₈
      ___________
        4 1 5 6 0₈

12.4. Деление чисел в системе счисления с основанием q

Деление — это единственная арифметическая операция, которую нельзя свести к простым поразрядным действиям. Здесь нужен итеративный подход.

⚠️ Особенность деления

Деление нельзя свести к поразрядным операциям над цифрами, составляющими число. Деление чисел в системе счисления с произвольным основанием q выполняется так же, как и в десятичной системе счисления — методом "деления уголком".

Пример деления в восьмеричной системе

  2 6 4 0₈ | 1 7₈
- 1 7₈     |_______
  _____    | 1 4 0₈
    7 4₈
  - 7 4₈
  _____
      0

Проверка: 1 7₈ = 15₁₀, 2 6 4 0₈ = 1440₁₀, 1 4 0₈ = 96₁₀
1440₁₀ ÷ 15₁₀ = 96₁₀ ✓

🤔 Вопрос для размышления

Как бы ты объяснил процесс деления тому, кто знаком только с делением в десятичной системе? В чем ключевое сходство?

12.5. Двоичная арифметика — язык процессора

Двоичная арифметика максимально элементарна — всего две цифры! Именно поэтому она идеальна для компьютерных вычислений.

Таблицы двоичных операций — предельная простота

Сложение

+  | 0 | 1
---|---|---
0  | 0 | 1
1  | 1 | 10

Вычитание

-  | 0 | 1
---|---|---
0  | 0 | 11
1  | 1 | 0

Умножение

×  | 0 | 1
---|---|---
0  | 0 | 0
1  | 0 | 1

✨ Элегантность двоичной арифметики

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

Примеры базовых операций

Сложение

      1 1 1 1 1 1₂
    +   1 1 1 1 1 1₂
                  1
    _______________
    1 0 0 0 0 0 0₂

Вычитание

      1 1 1 1 1₂
    - 1 0 0 0 0₂
    ___________
          1 1 1 1₂
  1 0 1 1 1 1 0 1₂
-     1 0 0 0 0₂
_______________
  1 0 1 0 1 0 1₂
Двоичная алгебра: элегантные паттерны степеней двойки

Двоичная алгебра: элегантные паттерны степеней двойки

Работа со степенями двойки — секретное оружие

Здесь начинается настоящая магия! Для эффективной работы с двоичными числами важно понимать закономерности.

🔑 Ключевое наблюдение

Обратите внимание на закономерность:

2¹ = 10₂ = 1 + 1
2² = 100₂ = 11₂ + 1
2³ = 1000₂ = 111₂ + 1
2⁴ = 10000₂ = 1111₂ + 1

Общая формула:

2ⁿ = 1̲0̲…̲0̲ = 1̲…̲1̲ + 1
     └─n─┘   └n┘

📐 Формулы для натуральных n и m (где n > m)

2ⁿ + 2ᵐ = 1̲0̲…̲0̲ + 1̲0̲…̲0̲ = 1̲0̲…̲0̲1̲0̲…̲0̲
          └─n─┘   └─m─┘   └n-m-1┘└─m─┘

2ⁿ - 2ᵐ = 1̲…̲1̲ + 1 - (1̲…̲1̲ + 1) = 1̲…̲1̲ - 1̲…̲1̲ = 1̲…̲1̲0̲…̲0̲
          └─n─┘     └─m─┘       └─n─┘ └─m─┘   └n-m┘└─m─┘

Практическая задача: подсчет единиц без вычислений

Пример 1. Количество единиц в двоичной записи

Задача: Найти количество единиц в двоичной записи числа:

2⁴⁰⁰⁰ + 4²⁰¹⁶ + 2²⁰¹⁸ - 8⁶⁰⁰ + 6

Решение:

Шаг 1: Преобразуем все к степеням двойки

4²⁰¹⁶ = (2²)²⁰¹⁶ = 2²·²⁰¹⁶ = 2⁴⁰³²
8⁶⁰⁰ = (2³)⁶⁰⁰ = 2¹⁸⁰⁰
6 = 4 + 2 = 2² + 2¹

Исходное выражение:

2⁴⁰⁰⁰ + 4²⁰¹⁶ + 2²⁰¹⁸ - 8⁶⁰⁰ + 6 = 
= 2⁴⁰⁰⁰ + 2⁴⁰³² + 2²⁰¹⁸ - 2¹⁸⁰⁰ + 2² + 2¹

Шаг 2: Перепишем в порядке убывания степеней:

2⁴⁰³² + 2⁴⁰⁰⁰ + 2²⁰¹⁸ - 2¹⁸⁰⁰ + 2² + 2¹

Шаг 3: Используем формулы для разностей

  • 2⁴⁰³² дает 1 единицу
  • 2⁴⁰⁰⁰ дает 1 единицу
  • 2²⁰¹⁸ - 2¹⁸⁰⁰ = цепочка из (2018 - 1800) = 218 единиц
  • 2² дает 1 единицу
  • 2¹ дает 1 единицу

Ответ: 1 + 1 + 218 + 1 + 1 = 222 единицы

Без единого вычисления! Просто анализ структуры двоичного представления.

Пример 2. Количество цифр при переводе

Задача: Найти количество цифр в восьмеричной записи числа:

2²⁹⁹ + 2²⁹⁸ + 2²⁹⁷ + 2²⁹⁶

Решение:

Двоичное представление исходного числа имеет вид:

1111̲0̲…̲0̲
    └296┘

Всего в этой записи 300 двоичных символов (4 + 296).

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

Следовательно:

300 ÷ 3 = 100

Ответ: восьмеричное представление исходного числа состоит из 100 цифр.

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

🤔 Вопрос для размышления

Где в реальной жизни может пригодиться умение быстро определять количество разрядов в различных системах счисления? Подумай о работе с памятью компьютера, сетевыми адресами или криптографией.

Ключевые выводы

Что важно запомнить из этого раздела

Универсальность принципов: Алгоритмы арифметических операций одинаковы для всех позиционных систем счисления — меняется только основание q
Поразрядная обработка: Сложение, вычитание и умножение выполняются разряд за разрядом с учетом переносов или заёмов
Двоичная эффективность: Простота двоичной арифметики (всего 2 цифры) делает её идеальной для компьютерных вычислений
Паттерны степеней двойки: Понимание структуры двоичного представления степеней двойки позволяет решать сложные задачи без прямых вычислений

🤔 Проверь себя

Кейсы и задачи для закрепления материала

1. Кейс-задача: Микроконтроллер игровой консоли

Представь, что ты программируешь микроконтроллер игровой консоли. Тебе нужно сложить два 8-битных числа 10110110₂ и 01101101₂.

Задание:

  • Выполни операцию сложения
  • Определи, произошло ли переполнение (результат не помещается в 8 бит)
  • Объясни, какие последствия может иметь переполнение в реальной программе
2. Мысленный эксперимент: Почему не троичная система?

Почему процессор использует двоичную, а не троичную систему, если троичная более "информационно плотная" (больше значений на цифру)?

Подумай о:

  • Физической реализации (как представить 3 состояния электрическим сигналом?)
  • Надежности и помехоустойчивости
  • Сложности логических схем
3. Аналогия: Восьмеричная vs десятичная

Сравни процесс сложения в восьмеричной системе с процессом в десятичной.

Ответь на вопросы:

  • В чем принципиальное сходство?
  • В чем ключевое различие?
  • Можешь ли ты объяснить это человеку, который никогда не слышал о других системах счисления?
4. Реальное применение: Где используется шестнадцатеричная система?

В каких областях IT (кроме процессоров) используется шестнадцатеричная система? Почему именно она, а не, например, пятеричная?

Подсказки для размышления:

  • Цвета в веб-дизайне (#FF5733)
  • MAC-адреса сетевых устройств
  • Дампы памяти при отладке программ
  • Почему удобна именно шестнадцатеричная, а не другая система?
5. Комбинированная задача

Вычисли (11111101₂ + AF₁₆) : 36₈ и запиши ответ в десятичной системе.

Обдумай:

  • Какой способ решения будет наиболее эффективным?
  • Стоит ли переводить всё в десятичную систему сразу или есть более элегантный путь?
  • Как можно проверить правильность результата?
6. Задача на понимание: Почему деление особенное?

Объясни, почему деление нельзя свести к поразрядным операциям, в отличие от сложения и умножения?

Размышляй о:

  • Природе операции деления
  • Зависимости результата от всех разрядов делимого
  • Алгоритме "подбора" цифр частного

📝 Задачи из учебника

Дополнительные упражнения для практики

Задача 1. Арифметика в разных системах

Выполните арифметические операции над двоичными числами:

  1. 10010011₂ + 101101₂
  2. 110010,11₂ + 110110,11₂
  3. 110101110₂ - 10111111₂
  4. 111110₂ · 100010₂
  5. 11111100101₂ : 101011₂

Проверка: Найдите десятичные эквиваленты операндов и результата для самопроверки.

Задача 2. Следующее число

Какое число следует за каждым из данных:

  1. 223₄
  2. 677₈
  3. 2222₃
  4. 1001₂

Ответ для каждого числа дайте в указанной и десятичной системах счисления.

Задача 3. Предыдущее число

Какое число предшествует каждому из данных:

  1. 222₃
  2. 1000₅
  3. 233₄
  4. 1001₂

Ответ для каждого числа дайте в указанной и десятичной системах счисления.

Задача 4. Поиск цифры

Сумму восьмеричных чисел 17₈ + 1700₈ + 170000₈ + 17000000₈ + 1700000000₈ перевели в шестнадцатеричную систему счисления.

Найдите: пятую цифру слева в шестнадцатеричной записи числа, равного этой сумме.

Задача 5. Смешанные системы

Вычислите значение выражения:

  1. (1111101₂ + AF₁₆) : 36₈
  2. 125₈ + 11101₂ · A2₁₆ - 1417₈

Ответ запишите в десятичной системе счисления.

Задача 6. Среднее арифметическое

Найдите среднее арифметическое следующих чисел:

  1. 10010110₂, 1100100₂ и 110010₂
  2. 226₈, 64₁₆ и 62₈

Задача 7. Восстановление цифр

В примерах на сложение восстановите неизвестные цифры, обозначенные знаком вопроса, определив вначале, в какой системе счисления эти числа записаны:

  2 ? 2 1
+   1 2 3 ?
___________
  ? 2 0 3 ?
  5 ? 5 5
+   ? 3 2 7
___________
  ? 1 6 ?
  2 1 ? 0 2
+ ? 1 2 1 2
___________
  ? 2 ? 0 2 1

Задача 8. Сравнение чисел

Даны 4 целых числа, записанные в двоичной системе счисления:

11000000₂, 11000011₂, 11011001₂, 11011111₂

Вопрос: Сколько среди них чисел, больших, чем AB₁₆ + 25₈?

Задача 9. Подсчет единиц (★)

Сколько единиц в двоичной записи числа 4²⁰¹⁴ + 2²⁰¹⁵ - 9?

Подсказка: используйте свойства степеней двойки!

Задача 10. Сложная задача на единицы (★★)

Сколько единиц в двоичной записи числа:

8⁴⁰²⁴ - 4¹⁶⁰⁵ + 2¹⁰²⁴ - 126

Задача 11. Подсчет цифр (★)

Сколько цифр в восьмеричной записи числа 2¹⁰²⁴ + 2¹⁰²⁶?

Задача 12. Первая цифра (★)

Какая первая цифра в шестнадцатеричной записи числа 2¹⁰²⁴ + 2¹⁰²⁵?

🚀 Отличная работа! Теперь вы понимаете, как выполняются арифметические операции в различных системах счисления и можете использовать элегантные свойства степеней двойки для решения сложных задач без прямых вычислений. В следующем параграфе мы узнаем, как компьютер представляет числа в своей памяти!

Информатика — твой билет в цифровое будущее