概述
1.混合运算和隐式转换
C++中允许相关的数据类型进行混合运算。
相关类型:尽管在程序中的数据类型不同,但逻辑上进行这种运算是合理的,比如2+5.0
相关类型在混合运算时会自动进行隐式类型转换,再计算。
2.算术转换
转换原则:
确保计算值的精度。转换后尽可能不丢失有效数字。
比如:short,2字节,能表示的数小;int,4字节,能表示的数大;int 转short,要丢掉2字节的信息,不可取;short转int,增加存储空间,但不丢失信息,可取。
转换方式:
(1)字节少的向字节多的转换
char,unsigned char,short,unsigned short,bool->int
cout<
(2)精度低的向精度高的转换
int -> float -> double
cout<
(3)有符号向无符号转换
int -> unsigned int
unsigned intui = 32768;
cout<
3.隐式转换时机
(1)混合类型的表达式
intn = 2;
charc = ‘a’;
cout<
(2)赋值
向左值类型转换
doublea = 8.12;
intk;
k = a;//a转换为int,舍去小数,k=8
(向低精度转换 会 损失有效数字)
(3)在需要关系、逻辑表达式的地方
非0转true;0转false
4.显示转换
程序中明确标记转换的类型,就是显示转换,也就是强制类型转换。
格式:() 或者 ()
举例:
double a =128,b = 30;
int n = 3;
a = (double)n/2;//强制将转a换为adouble
n = (int)(a/b);//强制将a/b的值转为int
优先级:高于乘法和除法,和逻辑非、按位取反同级
结合顺序:从右向左
总结
(1)相同类型的数据运算,结果的类型不变
(2)不同类型的数据运算,自动向精度高的类型转换
(3)赋值运算,向左值类型转换
(4)强制类型转换 () 或者()
(5)精度高向精度低的类型转换,会损失精度
(6)整型相除,结果为整型,小数会被舍去。
注:
(1)整型/整型 = 整型,3/2 = 1,而不是1.5
(2)double赋值给int,会舍去小数
(3)char和int相加,是字符的ASCII和整数相加
通过微信学习的知识只能是碎片化的知识,作为新时代的我们希望能够构建自己的知识结构,使我们的知识体系化,系统化,以后在遇到碎片化的知识,我们做的只是融合到自己的知识结构中,故我们将推出“与LSGO一起学”系列课程,帮助大家来构建知识框架,初步规划有:“与LSGO一起学C++”;
“与LSGO一起学C#”;
“与LSGO一起学Matlab”;
“与LSGO一起学数据结构”;
“与LSGO一起学设计模式”;
“与LSGO一起学可视化建模语言(UML)”;
“与LSGO一起学线性代数”;
“与LSGO一起学高等数学”
“与LSGO一起学概率论与数理统计”;
“与LSGO一起学抽象代数;
“与LSGO一起学点集拓扑”
“与LSGO一起学数字图像处理”;
“与LSGO一起学智能计算”;
如果对这些内容感兴趣,可以一起来学习讨论。
我们的官网: www.lsgogroup.com
最后
以上就是壮观小鸭子为你收集整理的matlab 数据混合运算,C++中混合运算的类型转换的全部内容,希望文章能够帮你解决matlab 数据混合运算,C++中混合运算的类型转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复