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

C++运算出现整型溢出

考虑如下代码:

int a=INT_MAX;
int b = 1;
long c = a+b;

这段代码没有编过!

原因是a和b都是int型,相加之后会溢出。

请记住,c语言没有赋值,只有表达式,右侧会存在一个暂存的int保存a+b的值,而明显这个暂存的值溢出了。

那这么改呢,用一个强制类型转换?

int a=INT_MAX;
int b = 1;
long c = long(a+b);

答案也是编不过的,要想编过,需要将b改成long类型,这是因为运算时会发生隐式类型转换,a的int类型会转换为更长的long,从而暂存值一直是long,不会溢出。


http://www.kler.cn/news/362111.html

相关文章:

  • 听泉鉴宝在三个月前已布局商标注册!
  • 【报错处理】MR/Spark 使用 BulkLoad 方式传输到 HBase 发生报错: NullPointerException
  • WebGl 实现图片平移、缩放和旋转
  • bash之基本运算符
  • Lua环境安装
  • linux命令之lvdisplay用法
  • Opensearch集群部署【docker、服务器、Helm多种部署方式】
  • LeetCode 142 - 环形链表 II
  • 动态规划19:53. 最大子数组和
  • solidworks管理员运行install.bat提示[sC]0penService 失败 5:拒绝访问。请按任意键继续...
  • YOLO11改进 | 注意力机制 | 添加SE注意力机制
  • U盘文件删除后的全面恢复指南
  • 纯css实现瀑布流! 附源码!!!
  • Android Studio Gradle版本、插件以及Android API对应关系(持续更新)
  • 二百六十八、Kettle——同步ClickHouse清洗数据到Hive的DWD层静态分区表中(每天一次)
  • docker 误删gitlab文件,另类的删库跑路,如何进行恢复?
  • css 不管目录结构层级。父元素有很多块子元素,孙子元素。希望从左往右从上往下排列
  • MySQL程序介绍<二>
  • TensorRT推理端到端
  • Nodejs上传阿里云oss图片案例
  • jupyter notebook 笔记
  • uniapp-components(封装组件)
  • 可能不常用到的Git命令
  • Springboot实现阿里云短信验证服务+Redis缓存
  • 手撕布隆过滤器:原理解析与面试心得
  • QT-子项目管理