int x = 1; for( int i = 0 ; i < nBit -1 ; i++) x *= 2;
return (srcChar & x);
}void CDLG3Dlg::OnButton1() { unsigned char y = 0235; bool Flag = GetBit(y,1); Flag = GetBit(y,2); Flag = GetBit(y,3); Flag = GetBit(y,4); Flag = GetBit(y,5);
}
呵呵,再去除一下警告错误 int GetBit(char myChar,int i) { return (myChar&(1<<(i-1)))>>(i-1); }
{
int x = 1 ;
x << (nBit - 1);
return (srcChar & x);}
{
int a=1;
return myChar&(a<<i);
}
{
int a=1;
return myChar&(a<<i);
}
int GetBit(char myChar,int i)
{
return (myChar&(1<<i-1))>>i-1;
}
可以
bool GetBit(unsigned char srcChar,int nBit)
{
int x = 1;
for( int i = 0 ; i < nBit -1 ; i++)
x *= 2;
return (srcChar & x);
}void CDLG3Dlg::OnButton1()
{
unsigned char y = 0235;
bool Flag = GetBit(y,1);
Flag = GetBit(y,2);
Flag = GetBit(y,3);
Flag = GetBit(y,4);
Flag = GetBit(y,5);
}
int GetBit(char myChar,int i)
{
return (myChar&(1<<(i-1)))>>(i-1);
}
BOOL GetBit(unsigned char srcChar,int nBit)
{
return (srcChar&(1<<(nBit-1)))>>(nBit-1);
}
------------------------------------------------------
所以GetBit(unsigned char srcChar,int nBit)中,nBit从0开始
稍微改一下,函数返回类型还是改为int
int GetBit(unsigned char srcChar,int nBit)
{
if ((nBit < 0) ||(nBit > 7))
return -1; return (srcChar&(1<<nBit))>>nBit;
}