C++ 中二进制位运算总结
int GetBit(char c,int i)
{ //取c的第i位
return ( c >> i ) & 1;
}
//设置c的第i位为v
void SetBit(char & c,int i, int v)
{
if( v )
c |= ( 1 << i);
else
c &= ~( 1 << i);
}
//将c的第i位为取反
void Flip(char & c, int i)
{
c ^= ( 1 << i);
}
调用方法:
char lights[5];
switchs=n;
GetBit(switchs,j);
SetBit(lights[i],j,s);