您的位置:首页 > 其它

判断一个整型值有无符号

2009-06-18 19:08 225 查看
http://topic.csdn.net/u/20090618/18/b892dbeb-2e2a-43cf-91bd-94ce661ad104.html

几种有意思的方法:

第一种:

#define ISUNSIGNED(a)   (a >= 0) && ( ~a >= 0)


第二种:a 为待测数

int b = -1;
if ( a < 0 )
{
cout << "signed" << endl;
}
else if ( b - a > 0 )
{
cout << "unsigned" << endl;
}
else
{
cout <<  "signed" << endl;
}


第三种:

a = -12;
__int64 b = (__int64)a;


给 a 随便一个负值,原理就是位扩展的时候,对于负数,如果是无符号数,高位扩 0,而对有符号数,高位扩 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: