Форум программистов, компьютерный форум CyberForum.ru

Арифметические операции. Дополнительный код - C++

Восстановить пароль Регистрация
 
Zuzik
 Аватар для Zuzik
220 / 205 / 34
Регистрация: 11.06.2012
Сообщений: 1,338
06.04.2014, 03:15     Арифметические операции. Дополнительный код #1
суть проблеммы в следующем. лаба. Операции с числами в доп. коде (доп. код - то каким способом хранятся целые числа на большинстве/многих/всех компьютерах). Проблемы возникли в начале.
Отрицание

Операция отрицания числа, представленного в прямом коде, выполняется очень просто - нужно инвертировать значение знакового разряда. Если же число представлено в дополнительном коде, отрицание выполняется несколько сложнее. Правило выполнения этой операции формулируется следующим образом.
1.Следует инвертировать значение в каждом разряде представления исходного числа (положительного или отрицательного), включая и знаковый, т.е. установить значение 1 в тех разрядах, где ранее было значение 0, и значение 0 — в тех разрядах, где ранее было значение 1 (эту операцию иногда называют поразрядным дополнением — bitwise complement, а ее результат — инверсным кодом).
2.Нужно сложить образовавшееся число с числом 0. . .001 по правилам сложения чисел без знака.

1 шаг проблем не вызвал. Побитовое отрицание и все. 2 шаг - я помню что тоже делается в одну-две операции. Но не помню в какие. Кто подскажет?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
06.04.2014, 03:27     Арифметические операции. Дополнительный код #2
Zuzik, а нельзя число из дополнительного кода перевести в прямой и выполнить отрицание ?
Zuzik
 Аватар для Zuzik
220 / 205 / 34
Регистрация: 11.06.2012
Сообщений: 1,338
06.04.2014, 03:40  [ТС]     Арифметические операции. Дополнительный код #3
нет, тут именно операции с числами в доп.коде
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
06.04.2014, 10:48     Арифметические операции. Дополнительный код #4
Zuzik, я так понял нужно повертеть с бинарным и тернарным сложением по модулю 2 + алгоритм маленький сообразить)
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
06.04.2014, 11:51     Арифметические операции. Дополнительный код #5
Цитата Сообщение от Zuzik Посмотреть сообщение
Но не помню в какие.
1.Инвертировать. 2. Прибавить единицу
Zuzik
 Аватар для Zuzik
220 / 205 / 34
Регистрация: 11.06.2012
Сообщений: 1,338
07.04.2014, 03:22  [ТС]     Арифметические операции. Дополнительный код #6
Цитата Сообщение от zss Посмотреть сообщение
1.Инвертировать. 2. Прибавить единицу
Гениально. Честно, гениально. Но - действия должны производится через операции над битами числа.

Добавлено через 54 минуты
и как прибавить через имеющиеся битовые операции единицу я не помню. Но знаю что сделать это можно.

Добавлено через 19 минут
Что то я начал сомневаться. Возможно и нельзя. Буду рад предложенным простым вариантам. Вариант в столбик складывать можно не предлагать.

Добавлено через 3 часа 30 минут
Тема можно закрыть. Вопрос не решен (использован вариант со сложением в столбик), но и уже не требует решения так как он для меня не актуален.
Yandex
Объявления
07.04.2014, 03:22     Арифметические операции. Дополнительный код
Ответ Создать тему
Опции темы

Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru