[英]How to extract bits from an integer in C?
So i'm trying to extracts bits from a 32=bit binary integer using bit shifting and masking, but i'm sightly off by one. 因此,我尝试使用位移和掩码从32 = bit的二进制整数中提取位,但是我被淘汰了。
#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;
}
There is logic missing in your code.. 您的代码中缺少逻辑。
Use 采用
for(i **= 31**; i **>=** 0; i--)
instead of 代替
for(i **= 32**; i **>** 0; i--)
Comment if it works for you 评论是否适合您
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.