求int long char double float 在混合运算中的自动转换规则 win 32位系统。

如int 和char 两种类型运算时 是自动转换成char还是int型 。

在程序运行中,变量的数据类型是可以转换的,转换方式有两种。
一、自动转换:自动转换发生在不同数据类型的量运算时,由编译系统自动完成。
1.自动转换遵循的规则
(1)若参与运算的量的数据类型不同,则先转换成同一类型,然后进行运算。
(2)转换数据始终往长度增加的方向进行,以确保精确度,如int和long运算,则将int转换为long再运算。
(3)所有的浮点运算都是以双精度(double)进行的,即使仅含有float变量的运算式,也要先转换为double再运算。
(4)char型和short进行运算时,要先转换为int型。
(5)在赋值运算中,赋值号两边的数据类型不同时,将赋值号右边的数据类型转换成左边的类型,结果是如果右边量的数据长度长于左边长度,会使一部分数据丢失,会降低精度,丢失的部分四舍五入。
2.自动转换的运算规则
float →→→→→ double 高级类型

↑ ↑
long ↑
↑ ↑
↑ ↑
unsigned ↑


char,short →→→→→ int 低级类型
P.s横向箭头是运算时必定要进行的转换
如:char必须转换为int才可以运算
float必须转换为double 才能运算
纵向箭头表示当运算对象的类型不同时转换的方向
如char和float运算,是将char转为double后运算
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-10
都是短转长。
char只占8位,int占32位,所以是char转成int
更简单理解,小范围的会自动转成大范围的。
举个数学上的例子:
自然数和整数做运算,自然数转成整数然后再计算,结果也是整数。
因为整数包含自然数
第2个回答  2013-07-11
有两种类型的的运算,一般都是采取向上转型,也就是会转成char
相似回答