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

Инвертировать 2 средних бита в числе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ проверка на корректность ввода . . . http://www.cyberforum.ru/cpp-beginners/thread396575.html
Необходимо сделать проверку - не ввёл-ли пользователь буквы например: нужно ввести месяц целым числом, а пользователь вдруг захотел вводить месяц буквами(а этого не надо) Каким образом можно организовать такую проверку?
C++ Удаление нулей из строки Здравствуйте, проблема такая. Имеется символьная строка, описанная как char* a; Как из этой строки 'a' убрать все нули? Т.е. она может задаваться как '02302304320' Возвращаться в таком случае должно '2323432'. Т.е. отбросив все нолики. Пример желательно с кодом, но не критично, хотя бы функции и принцип. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread396568.html
C++ Сортировка перемешиванием
Доброго времени суток! Я написал программу, выполняющую шейкерную сортировку (перемешиванием) массива из случайных чисел на 30 тыс. элементов. В ходе написания встречались сложности, с которыми я, до сих пор, справлялся. И вот, когда, казалось бы, пофиксил все ошибки и запустил таки программу, выяснилось, что она не работает. В чём проблема, не знаю. Помогите. PS Данная программа должна...
C++ Бинарные файлы, русские буквы.
Всем привет. Как решить такую проблему, есть простая структура: struct foo { int a; char s; }; записываю в файл так: foo obj; strcpy(obj.s, "бла бла"); //...
C++ Ошибка SIGABRT сразу при запуске http://www.cyberforum.ru/cpp-beginners/thread396520.html
Здравствуйте. Помогите пожалуйста, я в недоумении. Сразу при запуске вылетает сообщение о том, что перехвачен сигнал SIGABRT. Не могу понять, чем это может быть вызвано. Гугление привело к тому, что подобный сигнал вылетает при ошибках в работе с памятью, в частности - при повторной очистке. Пользуюсь только парой new-delete. Вроде бы всё проверил - всё нормально. Подобная тема уже была тут...
C++ программа по с++ помогите разобраться с программой,что означает вот эта строчка td::list<int> lst(arr, arr + n); bool fl = false; for(std::list<int>::iterator st = lst.begin(), fs = lst.end(); st != fs; ++st) в этом коде #include <iostream> #include <list> #include <iterator> #include <stdlib.h> подробнее

Показать сообщение отдельно
jed11
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 15
01.12.2011, 17:46     Инвертировать 2 средних бита в числе
люди помогите пожалуйста с заданием.
25. Даны два int-числа: N1 = ABCD и N2 = EFGH, где AB…GH – 16 – ричные цифры. Образовать long-число CDGHEFBA, используя только поразрядные операции. В цифрах D, F, B инвертировать два средних бита.
Часть кода имеется, составил число, вот только с инвертацией битов застрял.

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
long zadanie1 (int n1, int n2);
long zadanie2 (long n);
 
int main()
{
    int n1 , n2;
    long n; 
    printf("BBeDuTe n1, n2: ");
    scanf("%x%x", &n1, &n2);
    n = zadanie1(n1, n2);
    printf("N=%lx \n", n);
    n = zadanie2(n);
    printf("N=%lx \n", n);
    getch();
return 0;
}
 
long zadanie1 (int n1, int n2)
{
   long n=0x0, A,B, CD,GH, EF;
    A = (n1 >> 12) & 0xF;
    B = (n1 >> 8) & 0xF;
    CD = (n1 & 0xFF);
    EF = (n2 >> 8) & 0xFF;
    GH = n2 & 0xFF;
    n = n | (CD << 4*6);
    n = n | (GH << 4*4);
    n = n | (EF << 4*2);
    n = n | (B << 4);
    n = n | A;
return n;
}
 
long zadanie2 (long n)
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru