Как найти разность чисел в двоичной системе

#статьи

  • 27 фев 2023

  • 0

Двоичная арифметика: сложение, умножение, вычитание, деление бинарных чисел

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

Иллюстрация: Катя Павловская для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Мы привыкли считать всё в десятичной системе, потому что у нас 10 пальцев — и это удобно. Но если бы у нас было больше пальцев, например 12, то система могла бы быть двенадцатиричной и мы бы воспринимали её как обычную.

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

Давайте избавимся от страха и наконец узнаем, как проводить знакомые нам математические операции в двоичной системе.

Правила сложения двоичных чисел похожи на привычные нам: сложение происходит поразрядно справа налево, при этом важно помнить о переносе чисел в новый разряд.

В десятичной системе у нас всего 10 цифр: от 0 до 9. Когда мы складываем 1 и 9, у нас получается переполнение, так как больше 9 в одном разряде нельзя записать. Поэтому мы переносим единицу в следующий, получаем 10.

Двоичная система работает аналогично: чтобы понять, как складывать числа, нужно помнить об этом переполнении. Всего в двоичной системе две цифры — 0 и 1. Если сложить 1 и 1, мы получим переполнение, а значит, единица пойдёт в следующий разряд, результатом станет 10 (только не «десять», а «один-ноль»).

Если представить правила сложения двоичных чисел в общем виде, получим такую таблицу:

Изображение: Skillbox Media

Но лучше разобраться на примерах.

Пример 1. Давайте сложим 1100 и 101.

Изображение: Skillbox Media

Рассмотрим пример подробнее. Как мы уже упоминали ранее, сложение происходит справа налево. Разряды считаются тоже справа налево:

  • Первый: 0 + 1 = 1.
  • Второй: 0 + 0 = 0.
  • Третий: 1 + 1 = 10 — переполнение, единица переходит в следующий разряд.
  • Четвёртый: 1 + 0 + 1 = 10 — добавляем единицу из прошлого разряда, получаем переполнение, единица переходит в следующий разряд.
  • Пятый: 0 + 0 + 1 = 1 — единица пришла из предыдущего разряда.

Пример 2. Сложим 1111 и 111.

Изображение: Skillbox Media

Теперь поразрядно:

  • Первый: 1 + 1 = 0 — единица переходит в следующий разряд.
  • Второй: 1 + 1 + 1 = 1 — единица переходит в следующий разряд.
  • Третий: 1 + 1 + 1 = 1 — единица переходит в следующий разряд.
  • Четвёртый: 1 + 0 + 1 = 0 — единица переходит в следующий разряд.
  • Пятый: 0 + 0 + 1 = 1.

Вроде бы пока несложно. Так что попробуйте сами сложить 1101 и 1011, чтобы закрепить знания.

Ответ

1101 + 1011 = 11000.

Умножение в двоичной системе, как в десятичной, основано на сложении — и умении считать в столбик.

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

Изображение: Skillbox Media

Давайте теперь посмотрим на реальных примерах, как правильно умножать двоичные числа.

Пример 1. Умножим 110 на 10.

Изображение: Skillbox Media

Здесь мы воспользуемся привычным школьным «столбиком»: сначала умножаем верхнее число, 110, на 0, затем на 1, а потом складываем полученные два и получаем результат.

По сути, если мы умножаем число на ноль, то оно превращается в ноль, а если на единицу — остаётся неизменным, но сдвигается на число разрядов, равное номеру разряда этой единицы, как в обычном умножении:

  • 110 × 0 = 000;
  • 110 × 1 = 110.

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

  • 000 + 1100 = 1100.

Мы получили 1100, потому что сместили результат умножения 110 × 1 на один разряд влево, а затем добавили один 0 справа — как в обычном умножении.

Пример 2. Давайте теперь умножим 101 на 101.

Изображение: Skillbox Media

Не пугайтесь, что у нас получилось три числа, которые нужно сложить: правила остаются теми же. Ещё можно приписывать дополнительные нули туда, где находится пустое пространство — это поможет не запутаться.

Разберём пошагово:

  • 101 × 1 = 101;
  • 101 × 0 = 000;
  • 101 × 1 = 101.

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

  • 101 + 0000 + 10100 = 11001.

Попробуйте сами умножить 1101 на 111.

Ответ

1011011.

Правила двоичного вычитания тоже ничем не отличаются от десятичного. Мы также вычитаем поразрядно и, если нужно, занимаем единицу из старшего разряда.

Таблица вычитания выглядит так:

Изображение: Skillbox Media

Заметьте, что 0 − 1 = 1. Это всё потому, что мы занимаем единицу из старшего разряда и получаем 10, или 2 в десятичной системе, а если вычесть из 10 число 1, получим 1 (ведь 2 − 1 = 1).

Перейдём к примерам, чтобы понять, как вычитать одно число из другого.

Пример 1. Вычтем из 1100 число 11.

Изображение: Skillbox Media

Разберём подробнее поразрядно:

  • Первый: 0 − 1 = 1 — занимаем единицу из старшего разряда.
  • Второй: 1 − 1 = 0 — так как отсюда заняли единицу, но у нас её не было, мы взяли её из следующего разряда и вычли единицу из этого.
  • Третий: 0 − 0 = 0 — из этого разряда единица ушла в первый.
  • Четвёртый: 1 − 0 = 1 — здесь всё нормально.

Всё то же знакомое нам вычитание.

Пример 2. Вычтем из 1011 число 101.

Изображение: Skillbox Media

Тот же алгоритм по разрядам:

  • Первый: 1 − 1 = 0.
  • Второй: 1 − 0 = 1.
  • Третий: 0 − 1 = 1 — заняли единицу из следующего разряда.
  • Четвёртый: 0 − 0 = 0 — отдали единицу в предыдущий разряд.

Кажется, что всё несложно. Попробуйте теперь сами вычесть из 11010 число 1111.

Ответ

1011.

Вы удивитесь, но правила деления двоичных чисел похожи на деление десятичных. Рисуем привычный «столбик», умножаем, вычитаем, получаем результат.

Таблицы тут нет, потому что она бессмысленна — давайте сразу на примерах разбирать, как делить двоичные числа.

Пример 1. Поделить 1100 на 10.

Изображение: Skillbox Media

У нас есть только два варианта: умножить делитель на 1 или на 0. Поэтому алгоритм будет таким:

  • Смотрим на делимое, видим, что первые две его цифры — 11. Умножаем делитель на 1 и вычитаем из 11 число 10.
  • Получили 1, дописываем справа следующую по порядку цифру — 0. Теперь 10 равно делителю, значит, тоже умножаем его на 1 и вычитаем.
  • Получаем 0. Но у нас ещё остался один 0 у делимого — дописываем его справа от полученного 0.
  • Число 0 меньше, чем 10, поэтому умножаем делитель на 0. Получаем конечный ответ — 110.

Пример 2. Поделить 10010 на 110.

Изображение: Skillbox Media

Пошаговый алгоритм:

  • Первые три числа делимого меньше, чем делитель — значит, умножаем делитель на 0 и вычитаем. Получаем 100.
  • Дописываем 1 справа от 100, видим, что 1001 больше, чем 110, поэтому умножаем делитель на 1 и вычитаем его из 1001. Получаем 11.
  • Дописываем 0 справа. Полученное 110 равно делителю, поэтому тоже умножаем его на 1, получаем конечный результат.

Попробуйте сами теперь поделить 10100 на 100.

Ответ

101.

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

Научитесь: Профессия Python-разработчик
Узнать больше

  1. Изображение с названием Subtract Binary Numbers Step 1

    1

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

  2. Изображение с названием Subtract Binary Numbers Step 2

    2

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

    • 1 – 0 = 1
    • 11 – 10 = 1
    • 1011 – 10 = 1001
  3. Изображение с названием Subtract Binary Numbers Step 3

    3

    Рассмотрим более сложную задачу. Необходимо запомнить только одно правило, чтобы решать задачи на вычитание двоичных чисел. Это правило описывает заимствование цифры слева, чтобы вы могли вычесть 1 из 0 (0 – 1). Решим две задачи при помощи метода заимствования.

    • 110 – 101 = ?
  4. Изображение с названием Subtract Binary Numbers Step 4

    4

    В первом столбце справа вы получаете разность 0 – 1. Для ее вычисления необходимо позаимствовать цифру слева (из разряда десятков).

    • Во-первых, зачеркните 1 и замените ее на 0, чтобы получить такую задачу: 1010 – 101 = ?
    • Вы вычли («позаимствовали») 10 из первого числа, поэтому вы можете написать это число вместо цифры, стоящей справа (в разряд единиц). 101100 – 101 = ?
  5. Изображение с названием Subtract Binary Numbers Step 5

    5

    Вычтите цифры в правом столбце. В нашем примере:

    • 101100 – 101 = ?
    • Правый столбец: 10 – 1 = 1. Если вы не поняли, как получить такой ответ, прочитайте эту статью:
    • 102 = (1 x 2) + (0 x 1) = 210 (цифры нижнего регистра обозначают систему счисления, в которой записаны числа).
    • 12 = (1×1) = 110.
    • Таким образом, в десятичной системе эта разность записывается в виде: 2 – 1 = 1.
  6. Изображение с названием Subtract Binary Numbers Step 6

    6

    Вычтите цифры в оставшихся столбцах. Теперь это легко сделать (работайте со столбцами, двигаясь справа налево):

    • 101100 – 101 = __1 = _01 = 001 = 1.
  7. Изображение с названием Subtract Binary Numbers Step 7

    7

    Решите сложную задачу. В таких задачах придется «заимствовать» цифры несколько раз только для того, чтобы вычесть цифры в одном столбце. Например, решите следующую задачу: 11000 – 111. Нельзя «заимствовать» цифры у 0, поэтому передвигайтесь к следующей цифре слева (до тех пор, пока вы не достигнете 1).

    • 10110000 – 111 =
    • 10111001000 – 111 = (запомните: 10 – 1 = 1)
    • 10111001100100 – 111 =
    • Вот как это записывается в более понятном виде: 1011100 – 111 =
    • Вычислите разность цифр во всех столбцах (двигаясь справа налево): _ _ _ _ 1 = _ _ _ 0 1 = _ _ 0 0 1 = _ 0 0 0 1 = 1 0 0 0 1
  8. Изображение с названием Subtract Binary Numbers Step 8

    8

    Проверьте ответ. Есть три способа сделать это.[1]
    Быстрый способ — откройте двоичный онлайн калькулятор и введите в него условия задачи. Два других метода подразумевают проверку ответа вручную (они могут пригодиться вам на экзамене).

    • Сложите двоичные числа, чтобы проверить ответ. Сложите ответ с меньшим числом; вы должны получить большее число. В последнем примере (11000 – 111 = 10001): 10001 + 111 = 11000, то есть ответ правильный.
    • Кроме того, вы можете преобразовать двоичные числа в десятичные и проверить ответ. В последнем примере (11000 – 111 = 10001) при преобразовании вы получите: 24 – 7 = 17, то есть ответ правильный.

    Реклама

  1. Изображение с названием Subtract Binary Numbers Step 9

    1

    Запишите двоичные числа друг под другом так, как вы записываете десятичные числа при их вычитании. Этот метод используется компьютерами для вычитания двоичных чисел, так как он основан на более эффективном алгоритме. Однако простому человеку, привыкшему вычитать десятичные числа, этот метод может показаться более сложным (если вы программист, обязательно ознакомьтесь с этим методом вычитания двоичных чисел).[2]

    • Рассмотрим пример: 101 – 11 = ?
  2. Изображение с названием Subtract Binary Numbers Step 10

    2

    Если значность чисел разная, к числу с меньшей значностью слева припишите соответствующее количество 0. Например, если даны числа 101 (трехзначное) и 11 (двузначное), превратите двузначное число в трехзначное, приписав ему слева один 0: 011.

    • 101 – 011 = ?
  3. Изображение с названием Subtract Binary Numbers Step 11

    3

    В вычитаемом числе поменяйте цифры: каждую 1 поменяйте на 0, а каждый 0 на 1. В нашем примере вычитаемое превращается в: 011 → 100.

    • На самом деле мы «забираем дополнение у единицы», то есть вычитаем каждую цифру из 1. Это работает в двоичной системе, так как у такой «замены» может быть только два возможных результата: 1 – 0 = 1 и 1 – 1 = 0.
  4. Изображение с названием Subtract Binary Numbers Step 12

    4

  5. Изображение с названием Subtract Binary Numbers Step 13

    5

    Теперь вместо вычитания сложите два двоичных числа.

    • 101 + 101 = 1010
    • Если вы не знаете, как складывать двоичные числа, прочитайте эту статью.
  6. Изображение с названием Subtract Binary Numbers Step 14

    6

    В полученном результате игнорируйте любую цифру, стоящую первой слева (так как вы получили число не той значности). В нашем примере вы складывали трехзначные числа (101 + 101), а получили четырехзначный ответ (1010). Поэтому зачеркните первую цифру слева, и вы получите окончательный ответ вашей задачи.[3]

    • 1010 = 10
    • Таким образом, 101 – 011 = 10
    • Если лишней цифры нет, то вы вычитали большее число из меньшего. Смотрите раздел «Советы» о том, как решать такие задачи.
  7. Изображение с названием Subtract Binary Numbers Step 15

    7

    Попробуйте применить этот метод к десятичным числам. Этот метод называется «дополнение к двойке», так как замена цифр приводит к «дополнению к единице», а затем к полученному числу прибавляется 1.[4]
    Для лучшего уяснения этого метода рассмотрим следующий пример:

    • 56 – 17
    • Так как в примере рассматриваются десятичные числа, то каждую цифру вычитаемого (17) вычтите из 9: 99 – 17 = 82.
    • Сложите два числа: 56 + 82. Если вы сравните это суммирование с исходной задачей (56 – 17), то вы увидите, что к исходной задаче прибавили 99.
    • 56 + 82 = 138. Так как к исходной задаче прибавили 99, нужно вычесть 99 из ответа. Необходимо действовать аналогично вычислениям с двоичными числами: прибавьте к результату 1, а затем игнорируйте первую цифру слева.
    • 138 + 1 = 139 → 139 → 39. Это решение исходной задачи (56 – 17 = 39).

    Реклама

Советы

  • Для вычитания большего числа из меньшего, вычтите меньшее число из большего, а к ответу припишите знак «минус». Например, чтобы вычислить 11 – 100, вычислите 100 – 11, а затем к ответу припишите знак «минус» (это правило относится к вычитанию чисел в любой системе счисления, а не только в двоичной системе).
  • Метод дополнения работает следующим образом: a – b = a + (2n – b) – 2n. Если n равно разрядности b, то 2n – b на единицу больше результата вычитания каждого разряда.

Реклама

Об этой статье

Эту страницу просматривали 132 544 раза.

Была ли эта статья полезной?

➖Вычитание в разных системах счисления

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

Поскольку во всех системах счисления цифры начинаются с нуля, то количество цифр сводится к максимально допустимой цифре.

К примеру, в десятичной системе счисления максимальная цифра девять, а вот в троичной – двойка.

При вычитании (в столбик) когда вычитаем большее число из меньшего, то занимаем у старшего разряда “десяток”. Значение “десяток” будет меняться в зависимости от системы счисления, в которой будем производить операцию вычитания.

Для начала повторим, как работает вычитание в десятичной системе счисления, чтобы стало понятнее, как работает это в разных системах счисления.

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

Посчитаем разность 178 и 89. Операцию будем выполнять в столбик для наглядности.

Вычитание в столбик в десятичной системе счисления
Вычитание в столбик в десятичной системе счисления

Действия распишем поэтапно:

  • 8 – 9 (вычесть не можем, занимаем у старшего разряда) → 18 – 9 = 9;
  • 6 – 8 (вычесть не можем, занимаем у старшего разряда) → 16 – 8 = 8;
  • Поскольку у единицы тоже занимали, то она превратилась в ноль

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

Когда будем занимать “десяток” в двоичной системе счисления из старшего разряда, то прибавляться будет уже не 10, а всего лишь двойка. Рассмотрим так же на примере. Посчитаем разность 10000 и 111 в двоичной системе счисления. Операцию опять же выполним в столбик.

Вычитание в столбик в двоичной системе счисления
Вычитание в столбик в двоичной системе счисления

Распишем действия поэтапно:

  • 0 – 1 (вычесть не можем, занимаем у самого старшего разряда, т.к. все остальные тоже нули) → 2 – 1 = 1;
  • 1 – 1 = 0 (тут единица поскольку заняли у единицы, а потом постепенно перешло по младшим разрядам);
  • 1 – 1 = 0;
  • Единицу спускаем;
  • Спускаем ноль, так как занимали

Получили ответ в двоичной системе счисления.

Вычитание в шестнадцатеричной системе счисления

Хорошим примером будет также и шестнадцатеричная система счисления. Здесь операция вычитания выглядит сложнее из-за “буквенных” цифр. Главное — их сразу представлять с их значениями, и тогда счёт будет легче.

Здесь уже в качестве десятка выступает число шестнадцать. Посчитаем разность 1AB и FE.

Вычитание в столбик в шестнадцатеричной системе счисления
Вычитание в столбик в шестнадцатеричной системе счисления

Распишем действия поэтапно:

  • B – E → 11 – 14 (вычесть не можем, занимаем у старшего разряда) → 27 – 14 = 13 (D);
  • 9 – F → 9 – 15 (вычесть не можем, занимаем у старшего разряда) → 25 – 15 = 10 (A);
  • Спускаем ноль, так как занимали.

В операции вычитания при занятии у старшего разряда в любой системе счисления, в младший разряд прибавляется число, равное основанию системы счисления.

Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями!

Читайте также:

#информатика #системы счисления #школьная информатика #образование #арифметика #вычитание

Двоичный калькулятор онлайн

  1. Главная
  2. /
  3. Информатика
  4. /
  5. Двоичный калькулятор онлайн

Если вам необходимо произвести математические операции над двоичными числами воспользуйтесь нашим двоичным онлайн калькулятором:

Просто введите целые двоичные числа, выберите операцию и получите результат.

Данный калькулятор может производить следующие действия над двоичными числами:

  • сложение +
  • вычитание
  • умножение ×
  • деление ÷
  • логическое И (AND)
  • логическое ИЛИ (OR)
  • исключающее ИЛИ (XOR)

Сложение двоичных чисел

Сложение двух двоичных чисел производится столбиком поразрядно. Начиная с младшего разряда (справа на лево), как и при сложении столбиком десятичных чисел. Но так как цифр всего две (0 и 1), их сложение происходит по следующим правилам:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10

Пример

Для примера сложим 1011 и 101:

+ 1 0 1 1
1 0 1
1 0 0 0 0

10112 + 1012 = 100002

(1110 + 510 = 1610)

Вычитание двоичных чисел

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

0 – 0 = 0

1 – 0 = 1

1 – 1 = 0

10 – 1 = 1

Пример

Для примера вычтем из числа 1011 число 101:

1 0 1 1
1 0 1
1 1 0

10112 − 1012 = 1102

(1110 − 510 = 610)

Умножение двоичных чисел

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

0 × 0 = 0

0 × 1 = 0

1 × 0 = 0

1 × 1 = 1

Пример

Для примера перемножим числа 1011 и 101:

× 1 0 1 1
1 0 1
+ 1 0 1 1
0 0 0 0
1 0 1 1
1 1 0 1 1 1

10112 × 1012 = 1101112

(1110 × 510 = 5510)

Деление двоичных чисел

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

Пример

Для примера разделим число 11110 на 110:

Деление двоичных чисел

111102 ÷ 1102 = 1012

(3010 ÷ 610 = 510)

См. также

 

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

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

Таблица сложения, вычитания и умножения для двоичной системы счисления

Сложение Вычитание Умножение
0 + 0 = 0 0 — 0 = 0 0 ∙ 0 = 0
0 + 1= 1 1 — 0 = 1 0 ∙ 1 = 0
1 + 0 = 1 1 — 1 = 0 1 ∙ 0 = 0
1 + 1 = 10 10 — 1 = 1 1 ∙ 1 = 1

Сложение двоичных чисел

Сложение в двоичной системе счисления выполняется по тем же правилам, что и в десятичной. Два числа записываются в столбик с выравниванием по разделителю целой и дробной части и при необходимости дополняются справа незначащими нулями. Сложение начинается с крайнего правого разряда. Две единицы младшего разряда объединяются в единицу старшего.

Пример: 1011,12 + 1010,112
Двоичное сложение

Интересна также ситуация, когда складываются больше двух чисел. В этом случае возможен перенос через несколько разрядов.
Пример: 111,12 + 1112 + 101,12
Двоичное сложение с переносом через разряд
При сложении в разряде единиц (разряд 0) оказывается 4 единицы, которые, объединившись, дают 1002. Поэтому из нулевого разряда в первый разряд переносится 0, а во второй — 1.
Аналогичная ситуация возникает во втором разряде, где с учетом двух перенесенных единиц получается число 5 = 1012. 1 остается во втором разряде, 0 переносится в третий и 1 переносится в четвёртый.

Вычитание двоичных чисел

В случаях, когда занимается единица старшего разряда, она дает две единицы младшего разряда. Если занимается единица через несколько разрядов, то она дает по одной единице во всех промежуточных нулевых разрядах и две единицы в том разряде, для которого занималась.
Пример: 10110,012 — 1001,12
Двоичное вычитание

Умножение и деление двоичных чисел

Двоичное деление
Зная операции двоичной арифметики, можно переводить числа из двоичной системы счисления в любую другую.
Пример: Перевести число 1011110112 в десятичную систему счисления.
Поскольку 1010 = 10102, запишем

Цифры двоичного деления
Полученные остатки,  10012 = 910,  =1112 = 710,  112 = 310. Искомое число 1011110112 = 37910.

Назад: Представление данных и архитектура ЭВМ

Добавить комментарий