//计算机中数是按补码形式存储的
//判断该整数是否是2的整数次方
//2的整数次方特点是转换为二进制数,1、只在一个位置上有一个1(且这个位置不是最低位)
bool IsPowerOfTwo (unsigned int value)
{
return (value > 0) && ((value & (value - 1)) == 0);
}
bool IsPowerOfTwo (int value)
{
return (value > 0) && ((value & (value - 1)) == 0);
}
//判断两个数是否异号
//异号则最高位符号不同,进行异或后,最高位一定为1,因此会小于零
bool IsOppositeSigns(int value1,int value2)
{
return (value1 ^ value2) < 0;
}
//不使用分支计算绝对值
//我们知道在我们对一个数进行位运算的时候,是在这个数的补码上进行的,对于补码我们知道,正数的补码是原码,负数的补码为原码除了最高位的符号位,取反,然后加1。把补码转换成原码的时候&#x