当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

计算一个数的二进制表示中有多少个1

    这个阶段的我好像很喜欢把玩code。拿到Code会想它是否能够工作。先使用,再Trace,然后总结归纳。

    这些都是从Points C中摘录的。现在看来还是觉得这些简短的Code很经典。

 ********************************方法一**************************************

/**//*
** This function returns the number of 1-bits that appeared in
** the argument value.
*/
int
count_one_bits( unsigned value )
...{
 int ones;

 /**//*
 ** While the value still has some 1-bits in it ...
 */
 for( ones = 0; value != 0; value = value >> 1 )
  /**//*
  ** If the low-order bit is a 1, count it.
  */
  if( value % 2 != 0 )
   ones = ones + 1;

 return ones;
}   
 
**********************************方法二************************************

/**//*
** This function returns the number of 1-bits that appeared in
** the argument value.
*/
int
count_one_bits( unsigned value )
...{
 int ones;

 /**//*
 ** While the value still has some 1-bits in it ...
 */
 for( ones = 0; value != 0; value >>= 1 )
  /**//*
  ** If the low-order bit is a 1, count it.
  */
  if( ( value & 1 ) != 0 )
   ones += 1;

 return ones;
}

相关内容
赞助商链接