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

C语言关于溢出和不溢出的判断

通过实验来判断整数溢出,浮点数溢出的情况

#include <stdio.h>
#include <limits.h>
#include <float.h>

int main(void) {
    // 整数溢出
    int int_max = INT_MAX;  // INT_MAX 是 int 类型的最大值
    int int_min = INT_MIN;  // INT_MIN 是 int 类型的最小值
    unsigned int uint_max = UINT_MAX;  // UINT_MAX 是 unsigned int 类型的最大值

    printf("整数溢出实验:\n");
    printf("int_max = %d\n", int_max);
    printf("int_max + 1 = %d (溢出)\n", int_max + 1);  // 发生溢出
    printf("int_min = %d\n", int_min);
    printf("int_min - 1 = %d (溢出)\n", int_min - 1);  // 发生溢出
    printf("uint_max = %u\n", uint_max);
    printf("uint_max + 1 = %u (溢出)\n", uint_max + 1);  // 发生溢出

    // 浮点数溢出
    float float_max = FLT_MAX;  // FLT_MAX 是 float 类型的最大值
    double double_max = DBL_MAX;  // DBL_MAX 是 double 类型的最大值

    printf("\n浮点数溢出实验:\n");
    printf("float_max = %e\n", float_max);
    printf("float_max * 2 = %e (溢出,变为无穷大)\n", float_max * 2);  // 发生溢出,变为无穷大
    printf("double_max = %e\n", double_max);
    printf("double_max * 2 = %e (溢出,变为无穷大)\n", double_max * 2);  // 发生溢出,变为无穷大

    // 浮点数下溢出
    printf("\n浮点数下溢出实验:\n");
    printf("float_min = %e\n", FLT_MIN);  // FLT_MIN 是 float 类型的最小正数
    printf("float_min / 2 = %e (下溢出,变为接近零)\n", FLT_MIN / 2);  // 下溢出,接近零
    printf("double_min = %e\n", DBL_MIN);  // DBL_MIN 是 double 类型的最小正数
    printf("double_min / 2 = %e (下溢出,变为接近零)\n", DBL_MIN / 2);  // 下溢出,接近零

    return 0;
}

http://www.lryc.cn/news/504140.html

相关文章:

  • 活动预告 |【Part1】Microsoft Azure 在线技术公开课:使用 Microsoft Fabric 实现数据湖仓
  • Unreal的Audio::IAudioCaptureStream在Android中录制数据异常
  • 6、AI测试辅助-测试报告编写(生成Bug分析柱状图)
  • 【第五节】docker应用系列篇: 使用Docker容器实现ElasticSearch+Kibana部署
  • openwrt 通过DHCP/DNS(Dnsmasq)屏蔽指定域名(hosts)
  • opencv——识别图片颜色并绘制轮廓
  • docker简单私有仓库的创建
  • etcd常见运维事件
  • [代码随想录17]二叉树之最大二叉树、合并二叉树、二搜索树中的搜索、验证二叉搜索树。
  • 前端三大框架 Vue、React 和 Angular 的市场占比分析
  • 12.3【JAVA-EXP4-DEBUGSTUDY】
  • flutter命令行直接指定设备
  • Spring核心--Bean后处理器
  • Windows子系统Ubuntu本地部署xinference以及接入dify详解
  • 如何实现接口继承与实现继承的区别?如何处理多态性与性能的平衡?
  • VR虚拟展厅的实时互动是如何实现的?
  • Java、鸿蒙与嵌入式开发:技术选择与职业发展分析
  • 28. Three.js案例-创建圆角矩形并进行拉伸
  • Shopee算法分析 - x-sap-ri
  • 日志相关的学习记录
  • HTML和JavaScript实现商品购物系统
  • 深度学习中的激活函数
  • 编写php项目所需环境
  • 华为机试HJ108 求最小公倍数
  • 【Python技术】同花顺wencai涨停分析基础上增加连板分析
  • 《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(五)
  • 【LeetCode】3356、零数组变换 II
  • Vue 子组件修改父组件传过来的值的三种方式
  • 4.Python 数字类型
  • MacOs 日常故障排除troubleshooting