请帮助您重新编写此代码。我无法理解按位leftshift实际上是如何工作的。如果有更简单的方式来表示此代码,请告诉我。
此代码用于计算数字位表示中的1(1)个数。
int numberofones( int value, int count) {
int numchars = 8 * sizeof(int);
int n;
for(n = 0; n < numchars; n++)
{
if(value & (1 << (numchars - 1 - n))) {
count++;
}
}
return count;
}
答案 0 :(得分:0)
int numberofones( int value) {
int numchars = 8 * sizeof(int);
int n;
int count = 0 ;
for(n = 0; n < numchars; n++)
{
if(value & (1 << n))
count++;
}
return count;
}