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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kaig
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 23
#1

Перестановка битов в двоичном числе - C++

18.11.2015, 10:12. Просмотров 443. Ответов 2
Метки нет (Все метки)

Добрый день! Подскажите, пожалуйста, как правильно перемешать битовую последовательность, которая задается с клавиатуры, так, чтобы количество исходных битов в 32х разрядном числе совпало с количеством битов в 32х разрядном перемешанном числе?
Например, есть число
1001001
перемешиваем биты, получаем:
0100011
Т.е было у на три единицы, столько же их и осталось. Аналогия с колодой карт.
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
#define bits 32
#define mixing 32
int main()
{
    setlocale(LC_ALL,"Rus");
    int n;
    printf("%s","Введите десятичное число: ");
    cin >> n;
    int i = bits; 
 
    printf ("%s", "Число в двоичном виде: ");
    while(i > 0)
    {
        printf("%u", (n >> --i) & 1);
    }
    printf("\n");
 
    printf("%s","Перемешанное число: ");
    int j = mixing;
    while(j > 0)
    {
        // Алгоритм перемешивания битов (инвертирование запрещено!)
    }
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2015, 10:12     Перестановка битов в двоичном числе
Посмотрите здесь:
Перестановка битов C++
Произвести в двоичном представлении числа обмен битов с заданными номерами C++
Перестановка байтов в двоичном файле C++
C++ Узнать количество битов, что равны нулю в двоичном представлении значения числа
C++ Написать программу в которой необходимо определить каких битов больше в двоичном представлении целого значения
C++ Подсчёт битов в числе равных 1.
C++ Заменить в числе a v битов, начиная с n-й позиции
C++ Рандомное изменение двух последних цифр в двоичном числе
C++ Поменять местами все соседние группы из двух битов в заданом беззнаковом длинном числе
Написать функцию, которая для заданного x посчитает количество единичных битов в этом числе. C++
Перестановка десятичных цифр в трехзначном числе C++
Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
18.11.2015, 10:18     Перестановка битов в двоичном числе #2
Сложи биты числа в какой-нибудь контейнер и воспользуйся std::random_shuffle.
kaig
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 23
18.11.2015, 10:30  [ТС]     Перестановка битов в двоичном числе #3
Нужен собственный алгоритм.
Yandex
Объявления
18.11.2015, 10:30     Перестановка битов в двоичном числе
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru