牛客 求一个整数有多少个1!

把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。

另一种方法是每次右移动1位和1做与运算,但是要注意负数,因为负数最高位补1,永远除不尽??你可以试一试-1>>1,一直为-1哦!

posted @ 2017-04-05 22:37  爱编程的小羊  阅读(183)  评论(0编辑  收藏  举报