找出指定16进制数

/*
   x = 0xff30ff30  int value;
   unsigned int getBit(unsigned int x,int pos ,int n)

   getBit(x,8,4)-->f //从低8位开始找4位,从右往左
   getBit(x,16,8)-->30 

分析:
   1111 1111 0011 0000 1111 1111 0011 0000

先右移pos位
   x>>pos

   0000 0000 0000 0000 1111 1111 0011 0000

再用掩码

   0000 0000 0000 0000 0000 0000 1111 1111

   (x>>pos)&~(~0<

unsigned int getBit(unsigned int x,int pos,int n)
{
    return (x>>pos)&~(~0<

你可能感兴趣的:(找出指定16进制数)