首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++中怎么判断一个int变量的最高位是否为1(注:不同机器int的字长不等,掩码相与行不通)

2012-05-01 
c++中如何判断一个int变量的最高位是否为1(注:不同机器int的字长不等,掩码相与行不通)向高手请教一下:c++

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;

热点排行