Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 18:36   #1
Чекист
 
Регистрация: 10.03.2011
Сообщений: 3
По умолчанию Сложение по модулю ((2^32) -1)

Добрый вечер! Подскажите как реализовать сложение по модулю ((2^32) -1). Есть текстовый файл. Я считываю его, перевожу считанные данные в биты, в результате получается массив из нулей и единиц. Его размер равен 32. Мне нужно сложить его с другим массивом такого же размера по модулю ((2^32) -1). Есть кое-какие соображения, но чувствую что делаю неправильно.
Код:
int oneMas[32] = {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1};
int twoMas[32] = {0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0};
int Res[32];

for (int i = 31; i >= 0; i--)
{
	if (oneMas[i] + twoMas[i] < 2)
		Res[i] = oneMas[i] + twoMas[i];
	else
		Res[i] = oneMas[i] + twoMas[i] - 1;
}

Последний раз редактировалось Чекист; 03.02.2014 в 18:39.
Чекист вне форума Ответить с цитированием
Старый 06.02.2014, 19:00   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Если есть 64-битный тип, то просто
Код:
((uint64_t)a + b) % ((1 << 31) - 1)
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление по модулю Cas85 Общие вопросы C/C++ 10 03.01.2023 20:57
сложение по модулю 2(проблема с массивом bool) Mahoyn93 Общие вопросы C/C++ 9 29.04.2012 22:00
Сложение по модулю Kycaka Общие вопросы C/C++ 12 04.06.2009 21:58
Обратное о модулю Cakeinpanic Общие вопросы C/C++ 1 04.06.2009 08:32
форма к модулю Ilius Общие вопросы C/C++ 18 13.12.2008 16:20