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

Битовые операции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать массив из матрицы http://www.cyberforum.ru/cpp-beginners/thread998166.html
Всем привет! Помогите составить мне программу: На основе исходного двумерного массива C с рабочим размером n x n, сформировать одномерный массив A. Массив A должен содержать только те числа,...
C++ Дано целочисленное n вычислить Дано целочисленное n вычислить http://www.cyberforum.ru/cpp-beginners/thread998163.html
C++ Ошибка в программе
#include <iostream> #include <math.h> #include <iomanip> #include <conio.h> using namespace std; int main() { const float k=0.2, PI=3.14; const short n=4; float x,c,g;
C++ error C2259: number_of_plants: невозможно создать экземпляр абстрактного класса
error C2259: number_of_plants: невозможно создать экземпляр абстрактного класса Пожалуйста, помогите main #include "flower.h" #include <fstream> #include <sstream> #include <string>...
C++ Ошибки с реализацией md5 http://www.cyberforum.ru/cpp-beginners/thread998100.html
Доброе время суток. Не могли бы посмотреть исходник и по возможности помочь. В суме 8 ошибок error C2415: improper operand type #define _S11 7 #define _S12 12 #define _S13 17 #define _S14 22...
C++ Нужно дописать код задачи смотрите суть в том что нада вписывать текст (количество букв в слове должно быть меньше 15) далее програма должна проверять на наличие палиндромов (слова которые читаются слева направо и наоборот... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7416 / 4531 / 670
Регистрация: 29.11.2010
Сообщений: 12,273
05.11.2013, 01:35
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
template <typename T>
std::string foo(T value)
{
    int len = sizeof(value) * 8; // узнаем число битов
    unsigned mask = 1 << (len-1);
    std::string result;
    for (int i=0; i < len; i++, value <<= 1)
        result += ((value & mask || i == 7) ? '1' : '0');
    return result;
}
 
 
int main()
{
    std::cout << foo(45);
}
Добавлено через 7 минут
Через bitset:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <bitset>
 
template <typename T>
unsigned long foo(T value)
{
    const int len = sizeof(value) * 8; // узнаем число битов
    std::bitset<len> bs(value);
    bs.set(7, 1);
    return bs.to_ulong();
}
 
 
int main()
{
    std::cout << foo(45);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru