摘要:
题目:输出一个正整数的二进制中1的个数。示例:10(二进制为1010),则输出2方案一:基本思想:使用除法,不断除以2,记录余数为1时的次数。代码:while(i!=0){ if(i%2!=0) num++; i = i/2; }方案二:基本思想:使用位运算(效率上高于方案一),通过不断的右移,记录最右位为1的次数。代码:while(i!=0){ if((i&1)!=0) //最后一位为1 num++; i = i>>1; }注意:若输入为负数的时候,会导致死循环。方案三:基本思想:一个数的二进制减去1之后,会发生这样的改变:从最右边的... 阅读全文
posted @ 2013-08-25 17:23
欧麦高德
阅读(267)
评论(0)
推荐(0)

浙公网安备 33010602011771号