数值的整数次方
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。代码
double Power(double base, int exponent) {
int n, flag = 1;
double res = 1, curr=base;
if (exponent == 0)
{
return 1;
}
else if (exponent < 0)
{
if (base == 0)
return 0; //wrong
n = -exponent;
}
else
{
n = exponent;
}
while (n != 0)
{
if (n&1 == 1)
res *= curr;
curr *= curr;
n /= 2;
}
return exponent > 0 ? res : (1 / res);
}
二进制中1的个数
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路
n=n&(n-1); 清除二进制最右边的1代码
int NumberOf1(int n) {
int res=0;
while(n){
res++;
n=n&(n-1);
}
return res;
}