数据类型转换详解

规则:向高级的转换

转换级别(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值