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

时间:2017-01-26 05:18:09

标签: c binary bit bit-shift

所以我试图使用位移和屏蔽从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;
}

1 个答案:

答案 0 :(得分:1)

您的代码中缺少逻辑..

使用

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

而不是

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

评论是否适合您