如何从C中的整数中提取位?

How to extract bits from an integer in C?

所以我正在尝试使用位移和掩码从 32 位二进制整数中提取位,但我差一点。

#include <stdio.h>

int main (){

  int number = 87; //0000 000 0000 0000 0000 0000 0101 0111
  int i;
  int bit;
  int g = 0;

   for(i = 32; i > 0; i--){

   if(g%4==0 && g!=0){
     printf(" ");
   }
    g++;
    bit = (number >> i) & 1;
    printf("%d", bit);
  }

  printf("\n");
return 0;
}

您的代码中缺少逻辑..

使用

for(i **= 31**; i **>=** 0; i--)

而不是

for(i **= 32**; i **>** 0; i--)

评论是否适合您