读书人

c++中怎么判断一个int变量的最高位是否

发布时间: 2012-05-01 12:48:58 作者: rapoo

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;
[解决办法]
探讨
C/C++ code
int a = XXXX;
int b = a << 1;
int c = b >>1;
if (b == c)
最高位是0;
else
最高位是1;

读书人网 >C++

热点推荐