题目描述1
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:时间复杂度是O(n),n为二进制表示的位数
用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数
代码:
题目描述2
判断一个数是不是幂(只有一个1)。
n=n&(n-1);
if(n==0)
则是幂
否则不是幂
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:时间复杂度是O(n),n为二进制表示的位数
用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数
代码:
判断一个数是不是幂(只有一个1)。
n=n&(n-1);
if(n==0)
则是幂
否则不是幂