c++中算术类型的转换规则

下面这些转换规则适用于二元运算符的运算对象,目的是把它们转换成一种常见的类型,并且用该类型作为运算结果的类型:
[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

发布了60 篇原创文章 · 获赞 10 · 访问量 3746

猜你喜欢

转载自blog.csdn.net/sinat_18811413/article/details/104175393