您的位置:首页 > 其它

数据类型转换详解

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  平台