怎样判断一个数是无符号类型还是有符号类型
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)
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)
相关文章推荐
- C语言中怎样判断一个整形数是有符号数还是无符号数
- 怎样判断一个泛型的数据具体是什么类型
- 如何判断一个数为无符号数还是有符号数
- 如何判断一个数为无符号数还是有符号数
- 怎样判断一个exe可执行程序(dll文件)是32位的还是64位的?
- 判断一个变量类型是数组还是对象
- 怎样判断一个运行的ASP.NET程序是 Degug模式还是Release模式
- 如何判断一个数为无符号数还是有符号数
- 怎样使用 Python 来判断一个路径是否存在判断一个路径是文件还是目录
- 判断一个数是由符号数还是无符号数
- 怎样判断JSON数据类型是JSONObjec还是JSONArray
- 如何判断一个数为无符号数还是有符号数
- 判断类型是无符号类型还是有符号类型
- 判断一个变量类型是数组还是对象
- 如何判断一个数为无符号数还是有符号数
- 判断一个类是JAVA类型还是用户定义类型
- 判断一个OBject类型是值类型还是引用类型
- C# 怎样判断一个字符串的编码类型
- 怎样判断一个exe可执行程序是32位的还是64位的
- 判断一个变量类型是数组还是对象