如何計算一個整數中,二進位表示法裡面 1 的個數?
其實不是太難的問題,程式也很好寫,但是今天看到下面的寫法:
#include "stdio.h"
#include "stdlib.h"
int main()
{
____int num = 0;
____int in = 19;
____int in2 = in;
____while( in != 0 )
____{
________in = in & ( in - 1 );
________num++;
____}
____printf("%02X %d\n", in2, num);
____return 0;
}
很有趣的寫法,而且 Loop 的次數只跟 1 的個數有關。值得看看。
#include "stdio.h"
#include "stdlib.h"
int main()
{
____int num = 0;
____int in = 19;
____int in2 = in;
____while( in != 0 )
____{
________in = in & ( in - 1 );
________num++;
____}
____printf("%02X %d\n", in2, num);
____return 0;
}
很有趣的寫法,而且 Loop 的次數只跟 1 的個數有關。值得看看。
留言
張貼留言