A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aiq黑马程序员 中级黑马   /  2014-7-2 11:50  /  1583 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

浮点型,整形,以及字符型等等这些做加法等运算是需要手动强转还是编译器自动转了啊?
怎么有点蒙了,:Q

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

8 个回复

倒序浏览
如果任一个操作数是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

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
char byte short int 互相运算,结果为int;
在两个操作数中,有一个为long,结果为long;
在两个操作数中,有一个为float,结果为float;
在两个操作数中,有一个为double,结果为double;

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

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
编程学徙 发表于 2014-7-2 13:31
char byte short int 互相运算,结果为int;
在两个操作数中,有一个为long,结果为long;
在两个操作数中, ...

谢过,说的详细
回复 使用道具 举报
曾倩倩 发表于 2014-7-2 12:33
如果任一个操作数是long double, 则另一个要转换为long double
如果任一个操作数是double, 则另一个要转换 ...

辛苦了 谢谢
回复 使用道具 举报
大的向小的转需要进行强转,小的向大的转,编译器会自动提升,比如,int向double转,编译器会自动提升,
double向int转,就需要进行强转
回复 使用道具 举报
大的向小的转是强转,小的转大的是自动提升
回复 使用道具 举报
自己要学会总结啊
回复 使用道具 举报
目标类型大于原类型是自动转,否则强转
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马