Незнайка
Вся теория
Теория· 6 мин чтения

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

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

В этой статье вы сможете узнать:

  • как выполняется сложение и вычитание чисел в системах счисления, отличных от десятичной;
  • как возникает перенос разряда при сложении и заём при вычитании;
  • как умножать числа в двоичной системе счисления.

Общий принцип арифметики в позиционных системах

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

Сложение в двоичной системе

Таблица сложения однозначных двоичных чисел:

0+0=0,0+1=1,1+0=1,1+1=10  (перенос 1 в старший разряд)0+0=0, \quad 0+1=1, \quad 1+0=1, \quad 1+1=10 \; (\text{перенос } 1 \text{ в старший разряд})

Пример. Сложите 101121011_2 и 1102110_2.

1011+  11010001\begin{array}{r} 1011 \\ +\;110 \\ \hline 10001 \end{array}

Складываем справа налево: 1+0=11+0=1; 1+1=101+1=10, пишем 0, переносим 1; 0+1+1=100+1+1=10, пишем 0, переносим 1; 1+0+1=101+0+1=10, пишем 0, переносим 1 в новый разряд.

Ответ: 10112+1102=1000121011_2 + 110_2 = 10001_2.

Проверка через десятичную систему: 10112=111011_2=11, 1102=6110_2=6, 11+6=17=10001211+6=17=10001_2 — верно.

Вычитание в двоичной системе

Таблица вычитания однозначных двоичных чисел:

0−0=0,1−0=1,1−1=0,0−1=1  (заём 1 из старшего разряда)0-0=0, \quad 1-0=1, \quad 1-1=0, \quad 0-1=1 \; (\text{заём } 1 \text{ из старшего разряда})

Пример. Вычтите 1102110_2 из 101121011_2.

1011−  1100101\begin{array}{r} 1011 \\ -\;110 \\ \hline 0101 \end{array}

Вычитаем справа налево: 1−0=11-0=1; 1−1=01-1=0; 0−10-1 — занимаем 1 из следующего разряда, получаем 10−1=110-1=1, а следующий разряд уменьшается на 1; 0−10-1 (с учётом занятой единицы) — снова занимаем, 10−1=110-1=1.

Ответ: 10112−1102=10121011_2 - 110_2 = 101_2.

Проверка: 11−6=5=101211-6=5=101_2 — верно.

Умножение в двоичной системе

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

0×0=0,0×1=0,1×0=0,1×1=10 \times 0 = 0, \quad 0 \times 1 = 0, \quad 1 \times 0 = 0, \quad 1 \times 1 = 1

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

Пример. Умножьте 1012101_2 на 11211_2.

    101×    11    10110101111\begin{array}{r} \;\;101 \\ \times\;\;11 \\ \hline \;\;101 \\ 101\phantom{0} \\ \hline 1111 \end{array}

Ответ: 1012×112=11112101_2 \times 11_2 = 1111_2.

Проверка: 5×3=15=111125 \times 3 = 15 = 1111_2 — верно.

Сложение и вычитание в восьмеричной и шестнадцатеричной системах

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

Пример. Сложите 57857_8 и 16816_8.

Складываем младшие разряды: 7+6=1310=1587+6=13_{10}=15_8 — пишем 5, переносим 1.

Складываем старшие разряды с переносом: 5+1+1=75+1+1=7.

Ответ: 578+168=75857_8 + 16_8 = 75_8.

Проверка: 578=471057_8=47_{10}, 168=141016_8=14_{10}, 47+14=6110=75847+14=61_{10}=75_8 — верно.

Пример. Вычтите 34834_8 из 61861_8.

Младший разряд: 1−41-4 — не хватает, занимаем: 8+1−4=58+1-4=5, старший разряд уменьшается на 1.

Старший разряд: 6−1−3=26-1-3=2.

Ответ: 618−348=25861_8 - 34_8 = 25_8.

Проверка: 618=491061_8=49_{10}, 348=281034_8=28_{10}, 49−28=2110=25849-28=21_{10}=25_8 — верно.

Пример. Сложите 3F163F_{16} и 1C161C_{16}.

Младший разряд: F+C=15+12=2710=1B16F+C = 15+12=27_{10}=1B_{16} — пишем B, переносим 1.

Старший разряд: 3+1+1=53+1+1=5.

Ответ: 3F16+1C16=5B163F_{16} + 1C_{16} = 5B_{16}.

Проверка: 3F16=63103F_{16}=63_{10}, 1C16=28101C_{16}=28_{10}, 63+28=9110=5B1663+28=91_{10}=5B_{16} — верно.

Пример. Умножьте 12812_8 на 383_8.

128=101012_8 = 10_{10}, 38=3103_8=3_{10}, 10×3=3010=36810 \times 3 = 30_{10} = 36_8.

Ответ: 128×38=36812_8 \times 3_8 = 36_8.

Алгоритм выполнения арифметических операций

  1. Определите основание системы счисления, в которой даны числа.
  2. Выполняйте операцию столбиком справа налево, как в десятичной системе.
  3. При сложении: если сумма цифр в разряде достигает основания системы или превышает его, запишите остаток от деления на основание, а частное перенесите в следующий разряд.
  4. При вычитании: если уменьшаемая цифра меньше вычитаемой, займите единицу из следующего разряда — это добавляет к текущей цифре значение основания системы.
  5. При умножении многозначных чисел умножьте всё число на каждую цифру множителя по отдельности, сдвигая промежуточные результаты, и сложите их по правилам той же системы счисления.
  6. Проверьте результат, переведя все числа в десятичную систему и выполнив операцию там же.

Примеры решения

Пример 1. Сложите 110121101_2 и 101121011_2.

Складываем разряды с переносами: 1+1=101+1=10 (0, перенос 1); 0+1+1=100+1+1=10 (0, перенос 1); 1+0+1=101+0+1=10 (0, перенос 1); 1+1+1=111+1+1=11 (1, перенос 1).

Ответ: 11012+10112=1100021101_2 + 1011_2 = 11000_2.

Пример 2. Вычтите 1012101_2 из 110021100_2.

0−10-1 — заём, 10−1=110-1=1; следующий разряд уменьшен на 1: 0−1−00-1-0... удобнее выполнить через десятичную проверку: 11002=121100_2=12, 1012=5101_2=5, 12−5=7=111212-5=7=111_2.

Ответ: 11002−1012=11121100_2 - 101_2 = 111_2.

Пример 3. Умножьте 11211_2 на 11211_2.

112=311_2=3, 3×3=9=100123\times3=9=1001_2.

Ответ: 112×112=1001211_2 \times 11_2 = 1001_2.

Пример 4. Сложите 2A162A_{16} и 171617_{16}.

Младший разряд: A+7=10+7=1710=1116A+7=10+7=17_{10}=11_{16} — пишем 1, переносим 1.

Старший разряд: 2+1+1=42+1+1=4.

Ответ: 2A16+1716=41162A_{16} + 17_{16} = 41_{16}.

Пример 5. Вычтите 23823_8 из 47847_8.

Младший разряд: 7−3=47-3=4.

Старший разряд: 4−2=24-2=2.

Ответ: 478−238=24847_8 - 23_8 = 24_8.

Часто задаваемые вопросы

Почему перенос в двоичной системе происходит уже при сумме 2, а не 10? Потому что основание двоичной системы равно 2 — как только сумма цифр в разряде достигает основания системы счисления, происходит перенос единицы в следующий разряд, независимо от того, какое это основание (2, 8, 10 или 16).

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

Чем заём при вычитании в двоичной системе отличается от заёма в десятичной? Принцип тот же самый — если цифра уменьшаемого меньше цифры вычитаемого, берётся заём из старшего разряда, но в двоичной системе заём добавляет к разряду значение 2 (а не 10, как в десятичной), поскольку это значение основания системы.

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

Похожие темы для изучения

  • Системы счисления: перевод чисел между системами
  • Кодирование и измерение информации
  • Логические операции и таблицы истинности
  • Основы программирования на Python: переменные, ветвления, циклы

Задачи для самостоятельного решения

  1. Сложите числа 111021110_2 и 1012101_2.
  2. Вычтите 100121001_2 из 111121111_2.
  3. Умножьте 1102110_2 на 1012101_2.
  4. Сложите числа 37837_8 и 25825_8.
  5. Найдите сумму 1A161A_{16} и 2C162C_{16}.
  6. Объясните, почему при сложении 12+121_2+1_2 получается 10210_2, а не 222_2.