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