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

Поменять местами биты двух переменных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как проверить образуют ли дроби прогрессию? http://www.cyberforum.ru/cpp-beginners/thread1049445.html
Помогите или вдохновите, пожалуйста, дописать программу! Бинарный файл создаю и заполняю числами. Но не знаю, как проверить образуют ли дроби прогрессию. Помогите с этой частью, пожалуйста.. ...
C++ Вычислить пример на С++ Прошу помощи с кодом программы на С++ для вычисления данного примера. Буду очень вам благодарен. Вычислить при x=1; y=0.37; a=12.87; b=7.7 s= tgx-ctg(x-y) / x^2+a*x+b http://www.cyberforum.ru/cpp-beginners/thread1049429.html
Отображение компонентов на форме C++
Всем доброго времени суток! Прошу помощи у бывалых:-) Решил начать изучать С++. Скачал Visual Studio 2013 Pro, создал проект для Win32, кинул на него Form (UI), на форму пару компонентов и уперся в...
C++ Синтаксис
Я не в ладах с синтаксисом С++ ( как записать с Button(ом) и выводом и тд ) Помогите 1)#include <iostream> #include <clocale> #include <cmath> using namespace std; long fact(int n) { ...
C++ Создание массива http://www.cyberforum.ru/cpp-beginners/thread1049389.html
Здравствуйте, мне нужно создать одномерный массив! Для дальнейшей работы с ним, мне нужно создать его через функции... Вот часть кода, которая меня интересует: //создание int **createV(int...
C++ какой можно к этой программе написать деструктор l9FS5aWT_y4 пишу по этому видео и на 24 минуте он говорит что можно что-то вписать в деструктор приведите пример пожалуйста, в коде было бы отлично, а то я хоть и читаю определения примеры но всё... подробнее

Показать сообщение отдельно
Naxx
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 4
26.12.2013, 05:38  [ТС]
Пока дошел до этого, вроде правильно. Есть соображения как улучшить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    long a(0), b(0);
    cin >> a >> b;
    //перестановка 4го бита
    if ((a&8) != (b&8))
        if (a & 8)
        {
            a ^= 8;
            b |= 8;
        }
        else
        {
            a |= 8;
            b ^= 8;
        }
        cout << "a = " << a << "\nb = " << b;
Добавлено через 28 минут
Полное решение задачи получилось таким:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i(8); i <= 32768; i *= 16)
    if ((a&i) != (b&i))
        if (a & i)
        {
            a ^= i;
            b |= i;
        }
        else
        {
            a |= i;
            b ^= i;
        }
Вот только мне не нравятся большие числа в цикле, возможно ли привести в более удобный вид?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru