您的位置:首页 > 其它

怎样判断一个数是无符号类型还是有符号类型

2014-10-13 18:59 197 查看
1.用函数重载的方法

char* GetType(unsigned int i)

{

return "unsigned int";

}

char* GetType(int i)

{

return "int";

}

2.利用表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。

(1)当a为无符号数时a-a为0,而-1为有符号数,因此转为无符号数,为一个很大的数

(2)当a为有符号数时,a-a为0,有符号数和有符号数相减为有符号数,因此得到-1 所有用这个宏可以判断出是

否为有符号数

#define IsUnsigned(a) (((a)-(a)-1)>0)

3.同2 一个无符号数取-之后为一个很大的数

#define IsUnsigned(a) ((a) >= 0 && (-a) >= 0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: