摘要: 引子:二进制中1的个数请实现一个函数,输入一个整数,输出该数二进制表示中的个数。例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2。 此题容易进入一个误区:误认为输入的数一定是正数,于是我很快写出这样的代码: 1 int num(int n) 2 { 3 int count=0; 4 while(n) 5 { 6 if(n&1) count++; 7 n=n>>1; 8 } 9 return count;10 } 看完书,发现自己落入了作者或者说面试官所设的圈套。如果输入的是-9,那么程序就会陷入死循... 阅读全文
posted @ 2013-08-31 22:55 七年之后 阅读(369) 评论(0) 推荐(0) 编辑