代码表示(C)

时间:2017-10-28 18:57:03

标签: c gcc computer-science

请帮助您重新编写此代码。我无法理解按位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;
}

1 个答案:

答案 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;
}