数据类型转换详解
2011-08-25 21:39
155 查看
规则:向高级的转换
转换级别(Rank)由低到高:char<short<int<long<long long
比如运算 a+b
1)都是有符号或无符号
转换成较高级别(Rank)的,如unsigned int和unsigned long做算术运算都转换成unsigned long
2)一边无符号,另一边有符号
i)如果无符号数的Rank不低于有符号数的Rank
则把有符号数转换成无符号数,如unsigned long和int做运算,都转换成unsigned long
ii)如果无符号数的Rank低于有符号数的Rank
(a)如果有符号数类型能够覆盖无符号类型的取值范围
则把无符号数转换成另一边的有符号类型,如在LP64平台上unsigned int和long做运算,则转换成long
(b)如果有符号数类型不足以覆盖无符号类型的取值范围
则把两边都转换成有符号数的Rank对应的无符号类型,如在ILP32平台上unsigned int和long做算术运算时都转换成unsigned long
转换级别(Rank)由低到高:char<short<int<long<long long
比如运算 a+b
1)都是有符号或无符号
转换成较高级别(Rank)的,如unsigned int和unsigned long做算术运算都转换成unsigned long
2)一边无符号,另一边有符号
i)如果无符号数的Rank不低于有符号数的Rank
则把有符号数转换成无符号数,如unsigned long和int做运算,都转换成unsigned long
ii)如果无符号数的Rank低于有符号数的Rank
(a)如果有符号数类型能够覆盖无符号类型的取值范围
则把无符号数转换成另一边的有符号类型,如在LP64平台上unsigned int和long做运算,则转换成long
(b)如果有符号数类型不足以覆盖无符号类型的取值范围
则把两边都转换成有符号数的Rank对应的无符号类型,如在ILP32平台上unsigned int和long做算术运算时都转换成unsigned long
相关文章推荐
- VC常用数据类型使用转换详解
- Java byte数据类型详解与转换
- Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解
- VC常用数据类型使用转换详解
- 常用数据类型使用转换详解
- VC常用数据类型使用转换详解
- VC常见数据类型转换详解[转]
- 常用数据类型使用转换详解
- Spring MVC详解(七) 注解式控制器的数据验证、类型转换及格式化(1)
- VC常用数据类型及使用转换详解
- VC常用数据类型使用转换详解-
- VC常用数据类型使用转换详解
- VC常用数据类型使用转换详解
- Visual C++常用数据类型转换详解
- VC常用数据类型使用转换详解
- Struts2总结---数据类型转换详解 (4)
- VC常用数据类型使用转换详解
- Java程序员从笨鸟到菜鸟之(四十四)细谈struts2(七)数据类型转换详解
- Visual C++常用数据类型转换详解
- 【Spring】详解Spring MVC中不同格式的POST请求参数的数据类型转换过程