数据类型的自动转换

表达式求值的过程中,往往会伴随着数据类型的自动转换,而数据类型的转换的一般情况如下所示,从低到高。

long double

double

float

unsigned long int

long int

unsigned int

int

有几点需要注意:

1. 这里没有出现char,short,enum,因为它们会被自动转换为int或是unsigned int类型

2. 当unsigned int 和 int 出现在同一个式子中时,需要注意,如:5u – 10,结果是大于0的,不是-5,而是4294967291

3. 另外对于32位机,由于long int的表现形式与int相同,unsigned int的表现形式与unsigned long int相同,因此long int的数值范围无法包含unsigned int,因此在32位机进行处理时,它们间的类型的自动转换可以理解为4位的有符号自动转为4位的无符号,然后再向上转为float型等;如 unsigned int a = 45; long int b = 2147483643; a + b中可以理解为都转换成了unsigned long类型

posted on 2012-05-25 20:55 钟谢伟 阅读(206) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(1)

随笔档案

IT网站

My Friends

搜索

最新评论

阅读排行榜

评论排行榜