![]() ![]() |
|
计算一个数的二进制表示中有多少个1 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:38:35 文章录入:杜斌 责任编辑:杜斌 | |
|
|
现在看来还是觉得这些简短的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; } |
|
![]() ![]() |