matlab 数据混合运算,C++中混合运算的类型转换

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值