计算一个数的二进制表示中有多少个1 |
|
www.nanhushi.com 佚名 不详 |
这个阶段的我好像很喜欢把玩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; }
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: malloc()以及free()的机制研究学习 下一篇文章: 在VisualC++应用程序中彻底清除进程 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|