Благодарю вас от всей души! У нас препод не может нормально объяснить, и вот перед повторным зачетом появилась нужда выучить данную тему. Вы большой молодец, чтоб я бнз вас делал! Передаю привет от лица группы програмистов 5-го корпуса РУДН п. Лазаревское!
Классная лекция! Спасибо большое! Я начала искать материал после того, как мозг сломался в вузовской методичке. Но, блин, от муз темы "Шурика" пару - тройку раз подпрыгнула 😂
Спасибо Вам огромное ! Всё очень понятно и доступно ! Читаю книгу С.Прата по языку С. Дошёл до манипулирования битами. В книге тоже освещаются эти моменты , но совсем немного. Ваше видео расставило всё по своим местам.
Я искал этот комментарий! ))) -Но мне кажется, что поправка не верна, правило одно: для смены знака двоичного представления целого числа с двоичным дополнением (tow's complement) нужно произвести инверсию каждого разряда и прибавить единицу.- Штудирую А.В.Столярова "Введение в программирование" и похоже, что не зря. )
Огромное спасибо за очень наглядный пример без сложной теории с формулами! Единственный вопрос, а в прямом коде отрицательные числа не складываются? У меня просто задание в вузе, даны пары чисел (как положительные, так и оба отрицательные, так и разнознаковые : например 2 и 3, -5 и -10, -3 и 7) и требуется для каждой пары выполнить сложение во всех трех кодах, а также вычитание (считай , сложение тоже) во всех трех кодах. Это подвох или все-таки в прямом коде складывают?
спасибо, там кажется были нюансы, которые не проговорили... например когда делаешь суммирование и получаешь положительное число то оно получается в прямом коде, хотя работал в инвертированным кодом....а когда получилось в ответе отрицательное число(во время работы в инвертированном коде)....то нужно сделать инверсию....похоже что в процессоре логически зашиты все эти правила что бы всегда суммировать...это я к тому что я ошибаюсь где-то?...или действительно эти правила достаточно искусственные....
я думаю, дело в том что положительные числа во всех трёх типах кодов получается одинаковым(и в видео это показано). Поэтому если в результате суммирования получилось положительное число(в самом левом разряде ноль), то и нет смысла делать инверсию, так как положительное везде одинаково. А вот если получилось в результате суммирования отрицательное число(в самом левом разряде единица), то тогда чтоб понять что за число получилось, надо сделать инверсию отрицательного числа, и при дополнительном коде после инверсии ещё единицу добавить. Но инверсию мы делаем для себя чтоб понять что это за число. Машина так и хранит отрицательные числа в обратном/дополнительном коде. Я так понял, надеюсь верно 😅
где то 2 пересдачи 3 недели пытался найти как складывать отриц двоичный код, пока не нашёл ваш урок, самое интересное что почти везде после сложения не инвертировали результат
Я буду рад если кто то обьяснит, почему это работает. А то выглядит как шаманство, тут что то добавили, там инверсия, а здесь отбросили. Почему, по какому логическому заключению это делается? Как я должен догадаться до этого метода?
для чего нужен обратный, дополнительный. Почему только отрицательный инвертируется, зачем единица прибавляется в дополнительном. Зачем суммировать в обратном и дополнительном....
там можно пойти другим путем. Мы при преобразовании из прямого кода в дополнительный сначала инвертируем, а потом добавляем единицу. Для преобразования из дополнительного в обратный просто делаем эти шаги в обратном направлении - вычитаем единицу, а потом инвертируем. Никаких единиц, при переполнении в случае сложения двух отрицательных чисел, запоминать не нужно.
Как же громко играет музыка, я сделаю видео громче что б слышать материал, и тут музыка на большой громкости начинает играть. Это мешает, но видео хорошее
Получается при сложении положительного и отрицательного чисел в дополнительном коде единица отбрасывается, а при сложении отрицательных чисел в допкоде - прибавляется?