/*2017/3/11*/
/*函数function:返回x中从右边数第P位开始向右数n位的字段*/
/*例如:getbits(29, 4, 3)) 返回29的二进制数的第4,3,2位*/
#include<stdio.h>
unsigned getbits (unsigned x, int p, int n);
int main(int argc, const char *argv[])
{
printf("%d\n",getbits(29, 4, 3));
return 0;
}
unsigned getbits ( unsigned x, int p, int n)
{
return (x >> (p+1-n) & ~(~0 << n));
}