摘要: 0001010>n表示m右移n位,正数右移之后再最左边补n个0;如果数字原先是负数,则右移之后在最左边补n个1;、 1 int NumberOf1(int n) 2 { 3 int count=0; 4 while(n) 5 { 6 if(n&1) 7 count++; 8 n=n>>1; 9 }10 return count;11 }整数右移一位和把整数除以2在数学上是等价的,但是上面的代码不能换成除以2,因为除法的效率比移位运算要低很多,在实际编程中尽可能的使用位移运算代替乘除法运算同时上面的代码如果n是负数的话,就可能造成死循环 1 int Number... 阅读全文
posted @ 2013-10-21 00:11 liyunyu1 阅读(189) 评论(0) 推荐(0) 编辑