Помощь - Поиск - Пользователи - Календарь
Полная версия: Прямой, обратный, дополнителтный код числа
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
DiSkEtKa
не знаю в каком разделе форума можно это спросить, так что заранее: простите меня модераторы...Ребят, совсем не поняла ничего прочитав теорию...помогите на примере научиться работать с кодами отрицательных и положительных чисел...вот у меня пример такой: подсчитать в прямом и доп коде 7-14..я перевожу в двоичную 7=111 и 14=1110...а как там с минусами поступать не понимаю абсолютно((( wacko.gif

volvo
7 ты перевела в двоичную форму... Положительные числа в прямом и доп. коде выглядят одинаково...

Теперь (-14)...

14 -> 1110 это прямой код, теперь переводим в дополнительный: инвертируем все разряды, к результату добавляем 1 и приписываем слева знаковый разряд - единицу...

1110 -> 0001 (инвертировали) -> 0010 (добавили единицу) -> 10010 (приписали спереди знак)...

Теперь складываем эти числа (сложение в столбик, с учетом переносов):
00111
10010
-----
11001
Это - число в дополнительном коде (знаковый разряд = 1)... Переводим его опять в прямой по тому же алгоритму:
11001 -> 00110 (инвертировали биты) -> 00111 (добавили единицу) -> ответ = (-7)

Попробуй то же самое проделать, например для 5 - 18... wink.gif
мисс_граффити
еще бывают случаи всяких переносов из знакового разряда и переполнений. это нужно? или пока самое простое интересует?
ManyaK
Кстатию кто-нить умеет еще на машинном коде кодить? lol.gif
Как в старые былые времена)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.