统计给定整数的二进制表示中1的个数
摘要:(1).逐位判断(位运算)Int get_counte(int n){ Intcounter = 0; While(n) { Counter+= n&1; n>>=1;}Return counter;}(2).一个整型不为0,那么二进制表示时,至少包含一位1。如果整数减去1,那么最右边的1变成0,而该1后面的0变成1,其余位不变。将原来的整数和减去1后的数做与运算,从原来最右边的那个1开始所有的,所有位变成0,如:1100&(1100-1=1011)=1000。也就是说整数与该数-1后做与运算,会把最右边一个1变成0。Int get_counter(int n){
阅读全文
posted @ 2011-08-31 11:07
浙公网安备 33010602011771号