作者
闫小林
白天搬砖,晚上做梦。我有故事,你有酒么?
各类数值型数据间的混合运算
在C 的表达式中会常常遇到不同数据类型之间的运算,运算过程中,当某个二元运算符两边的操作数类型不同但属于类型相容时,系统先将精度低的操作数变换到与另一个操作数精度相同,然后再进行运算。
比如整数 浮点数-字符
代码语言:javascript复制9 1.5-'a';
在运算之前,不同的数据类型要先转换为同一数据类型,然后再进行运算。
先执行9 1.5,运算之前会将这两个数转换成double类型的值,此时值应该时10.5
然后执行10.5 'a',a在ASCII码表里面的值是97,因此在运算之前会将a的值先转换为97,然后都转换为double类型再进行运算,最后输出结果。
C 混合运算类型转换规则:
字符可以作为整数参与数值运算,整数值为其在ASCII码表对应的数值。
操作数为字符或短整型时,系统自动转换成整型。
操作数为实型时,系统自动转换成双精度型。
当两数操作数类型不同时,将精度低的操作数的数据类型变换到与另一操作数类型相同再进行运算。
案例:输出整数,浮点数,字符9 1.5-'a'混合运算的值。
代码语言:javascript复制#include<iostream>
using namespace std;
int main() //主函数
{
cout<<9 1.5-'a'<<endl;
return 0;
}
执行本程序之后,则会输出-86.5。
类型转换是由系统自动进行的.