写了个方法,计算一个字节中存在着多少个二进位0,欢迎大家指点。
int getDigitOneCount(unsigned char *data)
{
int count = 0;
if ( 0 == data )
{
return count;
}
unsigned char baseData[8] = {1, 2, 4, 8, 16, 32, 64, 128};
for ( int i = 0; i < 8; ++i )
{
if ( baseData[i] == (baseData[i] & *data) )
{
++count;
}
}
return count;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char num1 = 5;
unsigned char *data = (unsigned char *)(&num1);
int count = getDigitOneCount(data);
qDebug() << "count is" << count;
return a.exec();
}