#include
<
stdio.h
>
int main()
... {
//unsigned int a = 100; //待判断数
int a = 100;
int b = -1; //参照数
if(a<0)
...{
printf("有符号数");
}
else
...{
if(b-a>0)
printf("无符号数");
else
printf("有符号数");
}
return 0;
}
int main()
... {
//unsigned int a = 100; //待判断数
int a = 100;
int b = -1; //参照数
if(a<0)
...{
printf("有符号数");
}
else
...{
if(b-a>0)
printf("无符号数");
else
printf("有符号数");
}
return 0;
}
其他网友解答:
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");