69,371
社区成员
发帖
与我相关
我的任务
分享
//我的bset是从最低位开始算的:0-31
#include <stdio.h>
void print_bit(int x, int v)
{
if (v) print_bit(x >> 1, v-1);
printf("%d", x & 1);
}
unsigned int rev(unsigned int value, int start, int cnt)
{
unsigned mask = ((1 << cnt) - 1) << start;
return mask ^value;
}
int main()
{
int value = 0x12345678;
print_bit(value, 32);
puts("");
print_bit(rev(value, 6, 4), 32);
puts("");
return 0;
}