如何从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--)
评论是否适合您
所以我正在尝试使用位移和掩码从 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--)
评论是否适合您