宏名: GET_DATA_N_TO_M_BIT(X, N, M)
作用:获取X中bit位从N到M的的数
#include <stdio.h>
#define GET_DATA_N_TO_M_BIT(X, N, M) ((X & (~(~(0u) << (M - N + 1))) << (N)) >>(N))
int main(int argc, const char *argv[])
{
int a = 0xc4;
int b = 0,
c = 0;
b = GET_DATA_N_TO_M_BIT(a, 6, 7);
c = (a & 0xC0) >> 6;
printf ("b: %d\n", b);
printf ("c: %d\n", c);
return 0;
}
打印结果:
archer@linux:/tmp$ ./a.out
b: 3
c: 3