您的位置:首页 > 其它

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

2007-10-09 17:34 393 查看
这个阶段的我好像很喜欢把玩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;


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐