下面这些转换规则适用于二元运算符的运算对象,目的是把它们转换成一种常见的类型,并且用该类型作为运算结果的类型:
[1] 如果一个运算对象的类型是long double,则另一个也转换成long double
-
否则,如果一个运算对象的类型是double,则另一个也转换成double
-
否则,如果一个运算对象的类型是float,则另一个也转换成float ·
-
否则,两个运算对象都执行整型提升
[2] 否则,如果一个运算对象的类型是unsigned long long,则另一个也转换成unsigned long long·
-
否则,如果一个运算对象的类型是long long int,而另一个运算对象的类型是unsigned long int,则当long long int能表示所有unsigned long int的值 时,该unsigned long int转换成long long int;否则,两个运算对象都转换成unsigned long long int·
-
否则,如果一个运算对象的类型是|ong int,而另一个运算对象的类型是 unsigned int,则当long int能表示所有unsigned int的值时,该unsigned int 转换成long int;
-
否则,两个运算对象都转换成unsigned long int·
-
否则,如果一个运算对象的类型是long,则另一个也转换成long·
-
否则,如果一个运算对象的类型是unsigned,则另一个也转换成unsigned
-
否则,两个运算对象都转换成int