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

Сложение двоичных чисел, представленных в bitset - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выход за предел массива http://www.cyberforum.ru/cpp-beginners/thread631479.html
Здравствуйте, меня заинтересовала одна особенность массивов, а именно то что они не проверяются на количество элементов, из этого исходит то что с их помошью мы можем изменить/инициализировать совершенно не относящуюся к этому массиву переменную. Я бы хотел узнать возможно ли это ?
C++ Union с явными указателями или void*- что выбрать? В программе предполагается использование огромного количества указателей типа void*, по которым будут хранится объекты типов А и Х. Т.о. при обращении будет использоваться явное приведение типа указателя. Но как вариант рассматриваю вместо void* использовать union { A* pA; X* pX; }; Мне кажется, что и тот, и другой вариант должны быть одинаковы по части занимаемого объёма... http://www.cyberforum.ru/cpp-beginners/thread631465.html
Eclipse C++ библиотеки C++
Компилятору не нравится объявление библиотеки #include <iostream> Можно ли как то это исправить? компилятор >> eclipse-cpp-helios
НОЧД и НОНД(задача) C++
Здравствуйте! Тут на одном сайте задача есть: Для двух данных натуральных чисел найдите их наибольший четный и наибольший нечетный делители. Входные данные Вводятся два натуральных числа, разделенные пробелом. Числа не превосходят 10 в степени 9. Выходные данные Выведите два числа через пробел — наибольший общий четный делитель и наибольший общий нечетный делитель. Если какого-то из...
C++ Указатель на объект.объясните http://www.cyberforum.ru/cpp-beginners/thread631402.html
base - это базовый класс...first - это производный от base...iam() виртуальная функция, перегруженная в first... Вопрос: почему вызывается функция базового класса, а не first?.. #include <iostream> #include "classes.cpp" using namespace std; int main() { base ibase; first ifirst;
C++ GetModuleFileNameEx ошибка #include <iostream> #include <windows.h> #include <time.h> #include "main.h" #pragma comment(lib,"Psapi") using namespace std; //global ULONG crc_tab; подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
01.08.2012, 05:38     Сложение двоичных чисел, представленных в bitset
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <bitset>
#include <cstdio>
 
template <size_t N>
std::bitset<N> sum (const std::bitset<N>& b1, const std::bitset<N>& b2) {
    std::bitset<N> result;
    bool carry = false;
    for (size_t i = 0 ; i < N ; ++i) {
        unsigned value = b1[i] + b2[i] + (carry ? 1 : 0);
        carry = value > 1;
        result[i] = value % 2;
        printf ("[%d] %u %u -> %d (%d)\n", (int)i, b1[i], b2[i], result[i], (int)carry); 
    }
    return result;
}
 
int main () {
    std::bitset<10> first(20);
    std::bitset<10> second (15);
    std::cout << sum (first, second).to_ulong() << std::endl;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
[0] 0 1 -> 1 (0)
[1] 0 1 -> 1 (0)
[2] 1 1 -> 0 (1)
[3] 0 1 -> 0 (1)
[4] 1 0 -> 0 (1)
[5] 0 0 -> 1 (0)
[6] 0 0 -> 0 (0)
[7] 0 0 -> 0 (0)
[8] 0 0 -> 0 (0)
[9] 0 0 -> 0 (0)
35
 
Текущее время: 02:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru