首页 > 代码库 > c/c++基本数据类型转换
c/c++基本数据类型转换
-
If either operand is of type long double, the other operand is converted to type long double.
-
If the above condition is not met and either operand is of type double, the other operand is converted to type double.
-
If the above two conditions are not met and either operand is of type float, the other operand is converted to type float.
//如果不是浮点数精度
-
If the above three conditions are not met (none of the operands are of floating types), then integral conversions are performed on the operands as follows:
-
If either operand is of type unsigned long, the other operand is converted to type unsigned long.
-
If the above condition is not met and either operand is of type long and the other of type unsigned int, both operands are converted to type unsigned long.
-
If the above two conditions are not met, and either operand is of type long, the other operand is converted to type long.
-
If the above three conditions are not met, and either operand is of type unsigned int, the other operand is converted to type unsigned int.
-
If none of the above conditions are met, both operands are converted to type int.
- 二元运算不考虑枚举的话,如果两边类型不一样,且有一边是浮点类型,则两边都转换成等级更高的浮点类型。否则两边进行integral promotion,然后如果两边类型不一样且同是signed或者同是unsigned,等级低的类型转换成等级高的类型。否则如果unsigned一边等级高于或等于signed一边,signed那边转换成unsigned那边的类型。否则如果signed那边的类型能容纳unsigned那边的范围,unsigned那边转换成signed那边的类型。否则两边都转换成signed那边对应的unsigned类型。
-
c/c++基本数据类型转换