摘要: 出处——《剑指offer》题目:实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2。1.假设要检测9的二进制中1的个数(1001),将其与1(0001)求‘与’来判断其最右边的一位是否为1,可以通过对9(1001)进行循环右移并与1(0001)求‘与’来得到总的1的个数,也可以通过对1(0001)循环左移并与9(1001)求‘与’来得到1的个数。但考虑到当对负数进行右移时,二进制最左边会使用1进行填充,而不是使用0,会使得循环判断条件始终为真,陷入死循环(使用while( n )时),因此采用对1(0001)进行循 阅读全文
posted @ 2012-09-18 15:02 糙哥 阅读(632) 评论(0) 推荐(0) 编辑