Top.Mail.Ru
Ответы

Спорим, что вы не знаете, как правильно выполнять вычитание в двоичной системе отсчёта?

Это facepalm, но сколько бы я не посмотрел видео на ютубе, то в каждом неверно объясняется вычитание двоичных чисел.

Дополнен

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

Дополнен

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

По дате
По рейтингу
Аватар пользователя
Новичок

Вычитание в стандартном двоичном дополнительном коде элементарно:
1. Меняешь знак вычитаемого.
2. Складываешь уменьшаемое и вычитаемое.

Чтобы изменить знак числа в дополнительном коде, надо инвертировать все биты числа и к получившемуся числу прибавить 1.

В действительности, всё ещё проще: разница между сложением и вычитанием в двоичном коде - только в переносе. При сложении перенос появляется при 1 + 1 и работает как ещё одно слагаемое, а при вычитании - при 0 - 1 и работает как ещё одно вычитаемое.

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

Аватар пользователя

Правила арифметических операций в десятичной, двоичной и других позиционных традиционных системах одинаковые, просто делается поправка на старшую цифру.
Вас же не смущает, что в десятичной системе 100 - 1 = 99, и Вы уверенно применяете правила распространения заемов и переносов при вычислениях в десятичной системе?
Аналогично в двоичной 100 - 1 = 11, просто старшая цифра тут 1, а не 9.

Аватар пользователя
Мыслитель

не легче в десятичную перевести и уже в десятичной проводить вычисления?