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

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

Восстановить пароль Регистрация
 
kaig
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 22
18.11.2015, 10:12     Перестановка битов в двоичном числе #1
Добрый день! Подскажите, пожалуйста, как правильно перемешать битовую последовательность, которая задается с клавиатуры, так, чтобы количество исходных битов в 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++ Подсчёт битов в числе равных 1.
C++ Рандомное изменение двух последних цифр в двоичном числе
Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе C++
Написать функцию, которая для заданого целого числа Х вычисляет количество пар (расположенных друг за другом) нулевых битов в этом числе C++
Написать функцию, которая для заданного x посчитает количество единичных битов в этом числе. C++
Перестановка байтов в двоичном файле C++
Перестановка десятичных цифр в трехзначном числе C++

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

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

Текущее время: 09:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru