首页 > 代码库 > 如何判断一个数为无符号数还是有符号数

如何判断一个数为无符号数还是有符号数

http://blog.csdn.net/yysdsyl/article/details/1885829

1. 利用函数重载

发信人: Enderson (小强), 信区: C_Cpp
标  题: Re: 如何判断一个变量是有符号还是无符号的?
发信站: 兵马俑BBS (Wed Nov  7 21:25:45 2007), 本站(bbs.xjtu.edu.cn)

void f(int val)
{
    std::cout << "singned" << std::endl;
}

void f(unsigned int val)
{
    std::cout << "unsigned" << std::endl;
}

在判断a是否有符号整数的地方调用函数f(a)就可以了吧

2. 通过改变符号位判断

发信人: phylips (星星||决定了,为老婆孩子奋斗), 信区: C_Cpp
标  题: Re: 如何判断一个变量是有符号还是无符号的?
发信站: 兵马俑BBS (Wed Nov  7 17:16:02 2007), 本站(bbs.xjtu.edu.cn)

那这样可以不
把A进行一个位运算,将最高位置1,判断是否大于0
A = A|(1 << 31);
if(A > 0)
printf("unsigned");
else
printf("signed");

如何判断一个数为无符号数还是有符号数