vc++求某一位是0还是1,这样做行吧?有没有更好的办法?

xxdd 发布于 2013/06/05 12:59
阅读 187
收藏 0
bool  GetTF(BYTE bTemp,int n)
{
BYTE x=0x01;
x=x<<(8-n);
int a=bTemp&x;
if(a>0)
return 1;
else
return 0;
}
加载中
0
Polle
Polle

需要移位?

弄一个掩码: 0x01000000 1的位置就是你要查看位的位置

然后int b = (a & 0x01000000);

if (b > 0) return 1;

else return 0;

0
书一
书一
与运算
0
Polle
Polle

可以定义一个数组存放这些掩码:

int mask[16];

mask[0] = 0x0000000000000001;

mask[0] = 0x0000000000000010;

...

然后定义一个宏或者内联函数

#define GET_BIT(i, n) ((a & mask[n]) > 0 ? 1 : 0)

然后在使用GET_BIT(a, 位的位置)就行了

返回顶部
顶部