黑马程序员技术交流社区

标题: 算术运算符中类型转换问题 [打印本页]

作者: 三月小雨    时间: 2015-7-31 22:41
标题: 算术运算符中类型转换问题
iOS基础-学习笔记33

6-算术运算符中类型转换问题
1、        类型转换问题
类型转换分为:隐式数据类型转换(自动转换)和显示数据类型转换(强制类型转换)
  

1)        自动转换(隐式转换):
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。
自动转换遵循以下规则:
(1)        若参与运算量的类型不同,则先转换成同一类型,然后进行计算。
(2)        转换数据长度增加的方向进行,以保证精度不降低。
如:int型和long型运算时,先把int量转成long型后再进行运算。       
(3)        所有的浮点运算都是以双精度进行的,即使仅含float单精度运算符的表达式,也要先转换成double型,再作运算。
(4)        char型和short型参与运算时,必须先转换成int型。
(5)        在赋值运算中,赋值号两遍量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

int i=1;i=i+9.801;
按照隐式处理方式,在处理i=i+9.801时,首先i转换为double型,然后进行相加,结果double型,再将double型转换为整型赋值给i

2)        显示转换(强制类型转换)

作者: 三月小雨    时间: 2015-7-31 22:42
自己顶沙发




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2