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

Вычитание в двоичной системе счисления - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
missial
Сообщений: n/a
23.05.2012, 20:48     Вычитание в двоичной системе счисления #1
Нужно провести вычитание напрямую, без преобразования в десятичную систему счисления. Пользовался поиском, но не нашел данный алгоритм, везде только через преобразование в десятичную сс. Прошу помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 20:48     Вычитание в двоичной системе счисления
Посмотрите здесь:

Сложение в двоичной системе счисления C++
C++ сложение чисел в двоичной системе счисления
C++ Сложение в двоичной системе счисления
Сложение в двоичной системе счисления C++
Вычитание в двоичной системе счисления двух чисел C++
Вычитание чисел в двоичной системе счисления C++
C++ Вычитание в троичной системе счисления

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niceonehere
 Аватар для niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 147
23.05.2012, 21:01     Вычитание в двоичной системе счисления #2
через побитовые операции
вот по ним всё найти реально
missial
Сообщений: n/a
25.05.2012, 11:34     Вычитание в двоичной системе счисления #3
Поделитесь примером, если не сложно.

Добавлено через 20 часов 27 минут
Помогите кто-нибудь...

Добавлено через 3 часа 3 минуты
Хотя бы пример...

Добавлено через 14 часов 44 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
case 2:
{
if(num1 > num2)
{ 
for(i = 0; i < 32; i++)//ГЇГ® î÷åðåäè âû÷èòГ*ГҐГ¬ ГЄГ*æäûé Г°Г*çðÿä 
{ 
if(bin1 < bin2)//åñëè Г°Г*çðÿä âû÷èòГ*åìîãî Г·ГЁГ±Г«Г* áîëüøå Г°Г*çðÿäГ* Г·ГЁГ±Г«Г* ГЁГ§ êîòîðîãî âû÷èòГ*ГѕГІ 
{ 
bin1[i + 1]--;//ГІГ® îòГ*ГЁГ¬Г*ГҐГ¬ ГЁГ§ Г±ГІГ*ðøåãî Г°Г*çðÿäГ* 1 
bin1 += 2;//ГЄ ìëГ*äøåìó ïðèáГ*âëÿåì 2
resultat_bin += (bin1 - bin2);//âû÷èòГ*ГҐГ¬ Г°Г*çðÿä âòîðîãî Г·ГЁГ±Г«Г* ГЁГ§ ïåðâîãî 
} 
else 
resultat_bin += (bin1 - bin2);//âû÷èòГ*ГҐГ¬ Г°Г*çðÿä âòîðîãî Г·ГЁГ±Г«Г* ГЁГ§ ïåðâîãî 
} 
resultat_num = prevod_v_dec(resultat_bin); 
vivod_bin(resultat_bin); 
} 
else if(num1 < num2) 
{ 
for(i = 0; i < 32; i++)//ГЇГ® î÷åðåäè âû÷èòГ*ГҐГ¬ ГЄГ*æäûé Г°Г*çðÿä
{
if(bin2 < bin1)//åñëè Г°Г*çðÿä âû÷èòГ*åìîãî Г·ГЁГ±Г«Г* áîëüøå Г°Г*çðÿäГ* Г·ГЁГ±Г«Г* ГЁГ§ êîòîðîãî âû÷èòГ*ГѕГІ
{
bin2[i + 1]--;//ГІГ® îòГ*ГЁГ¬Г*ГҐГ¬ ГЁГ§ Г±ГІГ*ðøåãî Г°Г*çðÿäГ* 1
bin2 += 2;//ГЄ ìëГ*äøåìó ïðèáГ*âëÿåì 2
resultat_bin += (bin2 - bin1);//âû÷èòГ*ГҐГ¬ Г°Г*çðÿä âòîðîãî Г·ГЁГ±Г«Г* ГЁГ§ ïåðâîãî
}
else
resultat_bin += (bin1 - bin2);//âû÷èòГ*ГҐГ¬ Г°Г*çðÿä âòîðîãî Г·ГЁГ±Г«Г* ГЁГ§ ïåðâîãî
}
resultat_num = prevod_v_dec(resultat_bin);
vivod_bin(resultat_bin);
}
else
{
cout << "Desyatichnaya versiya chisla 0\n";
cout << "Dvoichnaya versiya chisla 0\n";
}
break;
}
Нашел код для операции вычитания. Осталось доделать программу.

Добавлено через 1 минуту
Помогите кто может...
Yandex
Объявления
25.05.2012, 11:34     Вычитание в двоичной системе счисления
Ответ Создать тему
Опции темы

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