c++中如何判断一个int变量的最高位是否为1(注:不同机器int的字长不等,掩码相与行不通)
向高手请教一下:c++中如何判断一个int变量的最高位是否为1(注:不同机器int的字长不等,掩码相与行不通)
[解决办法]
int a;
if (a < 0)
{
// ...
}
不管字长多长,最高位为 1 是负的
如果是 unsigned int a
那么 if ((int)a < 0) { ... }
[解决办法]
- C/C++ code
int a = XXXX;int b = a << 1;int c = b >>1;if (b == c) 最高位是0;else 最高位是1;
[解决办法]