Как изменить биты в битсе?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как изменить биты в битсе?

Сообщение Anonymous »

For example, I have the integer

a = 10;

and it's binary representation (for a 32 bit integer) is

00000000000000000000000000001010

and reversed, it becomes < /p>

0101000000000000000000000000000000 < /p>

Теперь я видел этот код из этой статьи Topcoder, которая может выполнить этот < /p>

x = ((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) > 2) | ((x & 0x33333333) > 4) | ((x & 0x0f0f0f0f) > 8) | ((x & 0x00ff00ff) > 16) | ((x & 0x0000ffff)

Теперь есть какой -то простой способ достижения того же эффекта. Возможно, преобразуя наш битсет в строку, а затем изменить это? Конструкторы и метод преобразования битсет в цепочку битсета настолько сложны, что я не могу понять, как это сделать. < /p>

Вот что я попробовал до сих пор < /p>

#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

int main() {

const unsigned int k = 32;

int x = 10;
bitset nf(x);

cout

Подробнее здесь: https://stackoverflow.com/questions/485 ... n-a-bitset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»