/* getbits:取从第p位开始的n位*/
unsigned getbits(unsigned x, int p, int n)
{
return (x >> (p+1-n) ) & ~(~ 0 << n);
}
其中的表达式x >> (p+1-n) 将所希望的位段移到字的右边。~ 0 将所有位都置为1,~ 0 << n将
(~) 0左移n位,将最右边的n位用0填空。再对这个表达式求反,将最右边n位置为1,其余各位
置为0。
unsigned getbits(int x,int p,int n)
{
return (x>>(p+1-n))&~(~0<
}
阅读(1306) | 评论(0) | 转发(0) |