当前位置: 首页 > news >正文

C++ 混合运算的类型转换

一 混合运算和隐式转换

2+5=7
整型2+ 浮点5 行吗?成吗?中不中?
C++ 中允许相关的数据类型进行混合运算。
相关类型。
尽管在程序中的数据类型不同,但逻辑上进行这种运算是合理的相关类型在混合运算时会自动进行类型转换,再计算隐式转换。

二 算术转换

转换原则:
确保计算值的精度。转换后尽可能不丢失有效数字。
short,2字节,能表示的数小;
int,4字节,能表示的数大;
int转short,要丢掉2字节的信息,不可取。
short转int,增加存储空间,但不丢失信息,可行。

转换方式
字节少的向字节多的转换

char,unsigned char,unsigned short,boolint cout<<('a'+5)<<endl;

精度低的向精度高的转换

int float double
cout<<(5+3.5)<<endl;

有符号向无符号转换

int unsigned int
unsigned int ui=32678
cout<<(5+ui)<<endl;

三 隐式转换时机

混合类型的表达式

int n=2;
char c='a';
cout<<(c+n)<<endl;

赋值
向左值类型转换

double a=8.12;
int k;
k=a;

在需要关系、逻辑表达式的地方。
非0转true,0转false
在这里插入图片描述

四 显式转换

程序中明确标记转换的类型,就是显式转换,也就是强制类型转换。
格式
<类型>(<表达式>)
(<类型>)<表达式>
举例

double a=128,b=30;
int n=3;
a=(double)n/2;
n=int(a/b);

总结

(1)相同类型的数据运算,结果的类型不变;
(2)不同类型的数据运算,自动向精度高的类型转换;
(3)赋值运算,向左值类型转换;
(4)强制类型转换;
(<类型>)变量或常量;
<类型>(<表达式>)
(5)精度高向精度低的类型转换,会损失精度;
(6)整型相除,结果为整型,小数被舍去;
在这里插入图片描述

相关文章:

  • 读书-《蛤蟆先生去看心理医生》
  • 从1.0到4.0,看看你公司的费控模式是第几代?
  • Vitis HLS 学习笔记--控制驱动与数据驱动混合编程
  • 常见排序算法之选择排序
  • python之生成器表达式
  • 数字水印 | 附彩色图像论文:盲式水印嵌入的方法
  • 汽车软件单元测试分析
  • 当没用git工具是怎么快速下载项目
  • 2024年5月个人工作生活总结
  • Mac电脑重置网络命令
  • 多语言for循环遍历总结
  • 学习java第九十天
  • Linux文本处理三剑客之awk命令
  • 房地产销售管理系统具备哪些功能?
  • 下载安装nvm,使用nvm管理node.js版本
  • Linux - 高级IO
  • 10- Redis 键值对数据库是怎么实现的?
  • 人工智能专业现代学徒制人才培养质量评价体系构建
  • 2024.06.04【读书笔记】丨生物信息学与功能基因组学(第十章 多序列比对的基本概念与应用 第四部分)【AI测试版】
  • github有趣项目:Verilog在线仿真( DigitalJS+edaplayground)
  • 九部门:对机动车特别是货车排放问题的监管将更加严格
  • 观察|22项达全球最优,世行为上海营商环境“盖章”
  • 山东滕州车祸致6人遇难,肇事司机已被刑事拘留
  • 贵州召开全省安全生产电视电话会议:以最严要求最实举措守牢安全底线
  • 视觉周刊|劳动开创未来
  • 美国得克萨斯州发生5.4级地震,震源深度10千米