Беседа четырнадцатая. Продолжение1

Вычитание

Н. — Хорошо, теперь я более или менее умею складывать. Но скажи, пожалуйста, как производят вычитание?

Л. — Обычно проблему обходят. Предположи, что нам нужно из числа Л вычесть число В. Для начала к А прибавляем одну единицу, а затем прибавляют противоположное В число (его также называют дополнением к В) и при этом сложении не учитывают переноса.

Н. — Что ты называешь противоположным В числом?

Л. — Очень просто, это число, которое получается из числа В, если все его нули заменить единицами, а все его единицы нулями.
Число В меньше Л, и поэтому слеза к нему нужно дописать столько нулей, чтобы оба числа состояли из одинакового количества цифр. При преобразовании числа В в противоположное ему число все нули превращаются в единицы. Возьмем для большей наглядности числовой пример.
Предположим, что А равно 101101, (т. е. 45), а В равно 1011.

Н. — Иначе говоря, одиннадцати.

Л. — Браво, Незнайкин. Ты очень хорошо усвоил двоичную систему счисления. Следовательно, число В мы должны записать в следующем виде:
001011, чтобы оно как и число А состояло из шести цифр. В результате преобразования его в противоположное ему число получаем:
110100
А теперь позволь мне, Незнайкин, задать тебе один вопрос: что мы получим, если это противоположное число прибавим к числу В?

Н. — Я думаю, что это сложение не представляет труда везде, где в одном из чисел стоит 1, в другом числе стоит нуль. Поэтому сумма этих двух чисел будет равна шестизначному числу, где все цифры 1, т. е. мы получим 111111.

Л. — Браво, совершенно верно! А теперь прибавь к полученному результату одну единицу.

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

Л. — Правильно. Но теперь в твоем числе семь цифр. Если пренебречь последним переносом, у нас останется лишь нуль. Как ты видишь, в результате сложения противоположного В числа, самого числа В и одной единицы мы получаем нуль. Иначе говоря, если пренебречь переносом, то сумма противоположного В числа и единицы даст нам нечто эквивалентное — В. Следовательно, для получения нужного результата мне достаточно прибавить это число к числу

Л. Операция имеет следующий вид.

Н. — Я вижу, что в полученном результате слева стоит единица в скобках. Это несомненно появилось вследствие того, что ты не хочешь учитывать последний перенос.

Л. — Совершенно верно. Если теперь прибавить еще одну единицу, то в результате получим 100010. Преобразовав двоичное число в десятичное, получим 34, которое точно соответствует разности 45 и 11.

Н. — Должен признаться, что, не прибегая к двоичной системе счисления, я получил бы верный результат значительно быстрее!

Л. — Ты, может быть. Но электронные машины считают в двоичной системе счисления быстрее, чем в десятичной, даже если учитывать время, необходимое для преобразования.

septilos.ru