实现自Matrix67!

//二进制逆序
//分治思想
//程序读入一个32位整数并输出它的二进制倒序后所表示的数
#include <stdio.h>

int main() {
int n;
while (scanf("%d", &n) != EOF) {
n = (n & 0x55555555) << 1 | (n & 0xAAAAAAAA) >> 1;
n = (n & 0x33333333) << 2 | (n & 0xCCCCCCCC) >> 2;
n = (n & 0x0F0F0F0F) << 4 | (n & 0xF0F0F0F0) >> 4;
n = (n & 0x00FF00FF) << 8 | (n & 0xFF00FF00) >> 8;
n = (n & 0x0000FFFF) << 16 | (n & 0xFFFF0000) >> 16;
printf ("%d\n", n);
}
return 0;
}

 

相关文章:

  • 2021-09-10
  • 2021-05-09
  • 2021-06-22
  • 2022-12-23
  • 2022-01-19
  • 2021-05-24
  • 2021-11-01
猜你喜欢
  • 2021-12-09
  • 2021-10-30
  • 2022-02-07
  • 2021-06-05
  • 2021-07-21
  • 2022-12-23
相关资源
相似解决方案