Помогите пожалуйста. Вычесть число 10100110101 из числа 11100011011 ( оба числа...

0 голосов
43 просмотров

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


Информатика (28 баллов) | 43 просмотров
0

Возможно

Дан 1 ответ
0 голосов
Правильный ответ

Сначала посмотрим, какое из чисел больше. Как в обычной арифметике: если вдруг надо вычесть из меньшего большее, мы вычитаем из большего меньшее и ставим в ответе знак минус.
Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения):
  111 0001 1011
- 101 0011 0101

-----------------------
Тут все хорошо, из большего вычитается меньшее.
Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу.
Как итог, в разряде:
0-0=0
1-1=0
1-0=1
0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.

  111 0001 1011
- 101 0011 0101
-----------------------
       1 1110 0110

Это и есть ответ.

(150k баллов)