/*
通过位运算获取某个整形数据的某些位
unsigned getbits(unsigned n, int start, int end)
*/
#include <stdio.h>
unsigned getbits(unsigned n, int start, int end)
{
return n & (~(~0 << (end - start + 1))) << start ;
}
int main(void)
{
unsigned n;
int start, end;
unsigned tmp;
printf("enter n, getbits's start end\n");
scanf("%x%d%d", &n, &start, &end);
tmp = getbits(n, start, end) >> (end - start + 1);
printf("before:%#x\nafter:%#x\n", n, tmp);
return 0;
}
/*
enter n, getbits's start end
268 4 7
before:0x268
after:0x6
*/
通过位运算获取某个整形数据的某些位
最新推荐文章于 2022-10-21 16:52:33 发布