黑马程序员技术交流社区

标题: 浮点型,整形,以及字符型 [打印本页]

作者: aiq黑马程序员    时间: 2014-7-2 11:50
标题: 浮点型,整形,以及字符型
浮点型,整形,以及字符型等等这些做加法等运算是需要手动强转还是编译器自动转了啊?
怎么有点蒙了,:Q
作者: 曾倩倩    时间: 2014-7-2 12:33
如果任一个操作数是long double, 则另一个要转换为long double
如果任一个操作数是double, 则另一个要转换为double
如果任一个操作数是float, 则另一个要转换为float
此外整数运算符升级对两个操作数都有影响;
如果任一个操作数是unsigned long int, 则另一个要转换为unsigned long int
如果一个操作数是long int, 另一个是unsigned int, 如果long int可以表示结果,则unsigned int要转换为long int;
否则两个都转换为unsigned long int
如果任一个操作数是long int, 则另一个要转换为long int
如果任一个操作数是unsigned int, 则另一个要转换为unsigned int
除此之外,两个操作数都应是int
作者: 编程学徙    时间: 2014-7-2 13:31
char byte short int 互相运算,结果为int;
在两个操作数中,有一个为long,结果为long;
在两个操作数中,有一个为float,结果为float;
在两个操作数中,有一个为double,结果为double;

如果需要对某个数据进行强制转换,则格式为:
(数据类型)变量名。
如:(int)a,(double)(a+b);

作者: aiq黑马程序员    时间: 2014-7-3 14:52
编程学徙 发表于 2014-7-2 13:31
char byte short int 互相运算,结果为int;
在两个操作数中,有一个为long,结果为long;
在两个操作数中, ...

谢过,说的详细
作者: aiq黑马程序员    时间: 2014-7-3 14:54
曾倩倩 发表于 2014-7-2 12:33
如果任一个操作数是long double, 则另一个要转换为long double
如果任一个操作数是double, 则另一个要转换 ...

辛苦了 谢谢
作者: 陈云阳    时间: 2014-7-3 15:58
大的向小的转需要进行强转,小的向大的转,编译器会自动提升,比如,int向double转,编译器会自动提升,
double向int转,就需要进行强转
作者: aiq黑马程序员    时间: 2014-7-4 09:58
大的向小的转是强转,小的转大的是自动提升
作者: jesssy    时间: 2014-7-4 22:33
自己要学会总结啊
作者: ソi苆僞lè袮    时间: 2014-7-4 23:25
目标类型大于原类型是自动转,否则强转




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