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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zuzik
237 / 222 / 39
Регистрация: 11.06.2012
Сообщений: 1,470
#1

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

06.04.2014, 03:15. Просмотров 502. Ответов 5
Метки нет (Все метки)

суть проблеммы в следующем. лаба. Операции с числами в доп. коде (доп. код - то каким способом хранятся целые числа на большинстве/многих/всех компьютерах). Проблемы возникли в начале.
Отрицание

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

1 шаг проблем не вызвал. Побитовое отрицание и все. 2 шаг - я помню что тоже делается в одну-две операции. Но не помню в какие. Кто подскажет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 03:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Арифметические операции. Дополнительный код (C++):

Быстрые арифметические операции - C++
Здравствуйте. Я знаю, что в си++ есть понятие быстрых арифметических операций (не могу вспомнить термин). Т.е. не нужно писать i = i +1,...

Арифметические операции с двоичными числами - C++
Вопрос такой. Вот задание: Двоичные числа (разбор строки, формирование строки, операции сложения, вычитания, разные варианты вывода...

Арифметические операции с элементами массива - C++
Объявить целочисленный массив L . Используя цикл for (i = ... .. ..) {...} ввести значения элементов массива с клавиатуры. Объявить массив...

Арифметические операции. Комплексные числа - C++
Была поставлена задача: class Complex Смешанная арифметика ( перегрузка операторов) Как я понял я должен перевести выражение из...

Арифметические операции в консольном приложении - C++
program Project5; {$APPTYPE CONSOLE} uses SysUtils; Label 1; Var a,b,c,E,Fa,Fb,Fc:real; Lich:Integer;

Арифметические операции, сумма ряда - C++
Исправить и объяснить Прошу о помощи. Первая задача, выводит неверный результат: #include <iostream> using namespace...

5
Fene4ka_
91 / 91 / 16
Регистрация: 24.01.2014
Сообщений: 1,215
06.04.2014, 03:27 #2
Zuzik, а нельзя число из дополнительного кода перевести в прямой и выполнить отрицание ?
0
Zuzik
237 / 222 / 39
Регистрация: 11.06.2012
Сообщений: 1,470
06.04.2014, 03:40  [ТС] #3
нет, тут именно операции с числами в доп.коде
0
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
06.04.2014, 10:48 #4
Zuzik, я так понял нужно повертеть с бинарным и тернарным сложением по модулю 2 + алгоритм маленький сообразить)
1
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,398
Завершенные тесты: 1
06.04.2014, 11:51 #5
Цитата Сообщение от Zuzik Посмотреть сообщение
Но не помню в какие.
1.Инвертировать. 2. Прибавить единицу
0
Zuzik
237 / 222 / 39
Регистрация: 11.06.2012
Сообщений: 1,470
07.04.2014, 03:22  [ТС] #6
Цитата Сообщение от zss Посмотреть сообщение
1.Инвертировать. 2. Прибавить единицу
Гениально. Честно, гениально. Но - действия должны производится через операции над битами числа.

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

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

Добавлено через 3 часа 30 минут
Тема можно закрыть. Вопрос не решен (использован вариант со сложением в столбик), но и уже не требует решения так как он для меня не актуален.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2014, 03:22
Привет! Вот еще темы с ответами:

Арифметические операции с элементами файлов - C++
Для двух файлов А и В, которые включают по 17 элементов A={ai }, B={bi} i=1,17 необходимо выполнить следующие действия с элементами ai и ...

Арифметические операции над элементами массива - C++
Дан массив. Все его элементы: уменьшить на 30, умножить на последний элемент, увеличить на число B.

Арифметические операции, найти ошибку в коде - C++
Где ошыбка? #include <iostream> #include <iomanip> using namespace std; int main() { double mult = 1; int n = 1; ...

Арифметические операции с десятичными цифрами числа - C++
Дано 3-хзначное число.Определить: а)Является ли сумма его чисел 2-хзначным числом? б)Является ли произведение его цифр 3-хзначным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
07.04.2014, 03:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru