Андрей
Высший разум
(466062)
2 года назад
Вычитание в стандартном двоичном дополнительном коде элементарно:
1. Меняешь знак вычитаемого.
2. Складываешь уменьшаемое и вычитаемое.
Чтобы изменить знак числа в дополнительном коде, надо инвертировать все биты числа и к получившемуся числу прибавить 1.
В действительности, всё ещё проще: разница между сложением и вычитанием в двоичном коде - только в переносе. При сложении перенос появляется при 1 + 1 и работает как ещё одно слагаемое, а при вычитании - при 0 - 1 и работает как ещё одно вычитаемое.
Так что аппаратно схемы двоичных сложения и вычитания очень похожи.
hunterПрофи (744)
2 года назад
Ну опять же вы это скорее всего взяли из памяти или из другого ресурса, а не восстановили это благодаря логике, и я сомневаюсь, что вы понимаете, почему так нужно делать. Вообще я имел ввиду, что в видео не объясняют, в каких случаях работает обычное вычитание столбиком, а в каких оно не работает. Также неправильно объясняют занимание так называемой "единички" у следующего разряда при вычитании.
hunterПрофи (744)
2 года назад
При 1-1 также появляется занимание у следующего разряда, если уже было занимание у текущего разряда.
hunterПрофи (744)
2 года назад
Я просто хотел сказать, что все говорят, что занимается единичка при вычитании. Это неправильно! Занимается ДВОЙКА, а приписывается единичка.
hunterПрофи (744)
2 года назад
Объясняли бы правильно и никто бы не писал: "я не до конца понял"
Некий Загадочный
Гений
(51289)
2 года назад
Правила арифметических операций в десятичной, двоичной и других позиционных традиционных системах одинаковые, просто делается поправка на старшую цифру.
Вас же не смущает, что в десятичной системе 100 - 1 = 99, и Вы уверенно применяете правила распространения заемов и переносов при вычислениях в десятичной системе?
Аналогично в двоичной 100 - 1 = 11, просто старшая цифра тут 1, а не 9.