浮点数上溢、下溢

什么是上溢?

数据大于当前定义类型的范围,导致出现异常数据的现象。
(当计算导致数字过大,超过当前类型能表达的范围时,就会发生上溢。)

例子1

在我电脑中float类型的长度是4个字节,数值范围为 -3.4E+38 到3.4E+38。

#include <stdio.h>int main(void)
{
float a, b;
a = 3.4E38;
b = 3.4E38 * 100.0f;    // float 的数值范围:  -3.4E+38 到3.4E+38
printf("a = %e\n",a);   // float 最大值
printf("b = %e\n",b);   // 超过最大值
return 0;
}

通过给float类型变量赋值,可以看出当数值超过定义类型的范围时,就会出现上溢。而现在C语言规定,在这种情况下会给float类型变量赋一个无穷大的特定值,如图所示。

什么是下溢?

以一个十进制为例,把一个有4位有效数字的数(如,0.1234E-10)除以10,得到的结果为:0.0123E-10.虽然得到了结果,但是在计算过程中丢失了原末尾有效位尚的数字,这种情况叫做下溢。

例子

#include <stdio.h>int main(void)
{float c, d;c = 1.4E-45;d = 1.4E-45 / 2;    printf("c = %e\n",c);   printf("d = %e\n",d);
}

C语言把损失类型全精度的浮点值称为低于正常的浮点值,因此把最小的浮点数除以2会得到一个低于正常的值。

C语言:浮点数上溢、下溢学习记录相关推荐

  1. Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环

    目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...

  2. Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用

    文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...

  3. C Primer Plus 6th Edition第三章编程练习上溢下溢

    3.11 编程练习 1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢.浮点数上溢和浮点数下溢的情况. int类型(整数类型)占用4字节,范围为-2^ 31 ~ 2^31-1 即-214 ...

  4. 数值计算基础(上溢下溢、梯度优化、牛顿法、KKT方法)

    目录 上溢和下溢 病态条件 基于梯度的优化方法 KKT 方法 如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~ 上溢和下溢 上溢:当大量级的数字被近似为  时发生上溢,进一步计算会导致 ...

  5. 【C语言避坑指南】学习记录

    学习自B站Up双笙子佯谬的视频 [C语言避坑指南]看完这个视频,我再也不害怕指针!_哔哩哔哩_bilibili课件:https://github.com/parallel101/course作业:ht ...

  6. 欧阳萍听口班(上)——笔记+学习记录

    2019/9/23 begin again! 第三阶段(一些万能谈资)--谈理想 看"讲解"视频 配音 看"复习巩固"视频 场景1:赶作业 what are y ...

  7. 整数上溢和下溢与浮点上溢和下溢

    整数的上溢 #include<stdio.h> #include<math.h> int main() { int zhengshu1,zhengshu2;//int 类型在3 ...

  8. 【双符号位判决法】定点数上溢,下溢的判别

    上溢.下溢: 上溢:两个数进行运算,得到的结果的绝对值超过最大表示范围.定点整数之间只会发生上溢 下溢:两个浮点数运算,得到的结果的绝对值超过最小的表示范围.只有浮点数的运算会发生下溢 看图: 双符号 ...

  9. Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)

    文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...

最新文章

  1. shell 编程整合
  2. 开源分布式中间件 DBLE Schema.xml 配置解析
  3. PIC单片机入门_同步/异步通信技术基础
  4. .NET 编码的基础知识
  5. QT5 exec()模态显示子对话框,父子对话框都最小化后显示桌面
  6. 没有规则可制作目标modules_Modules简介
  7. 移动端APP扁平化UI设计解析
  8. JS中的showModelDialog详解和实例
  9. 投资捕鱼游戏市场的如何避雷?以及研发技术问题。
  10. 服务器怎么读取加密狗信息,[求助]菜鸟请教:加密狗读取数据如下,请问如何分析这些数据,怎样复制这个加密狗!...
  11. 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
  12. 遇到RAID5阵列硬盘出现问题的情况该如何解决?
  13. 五自由度简单机械臂运动学及动力学分析|基于MATLAB机器人工具箱Rvctool
  14. 微信公众号与小程序(二十——关于我如何莫名其妙建了一个电影搜索机器人这件事)
  15. WIN10共享打印机报错解决方法
  16. 51单片机DAC数模转换
  17. 谷歌浏览器恐龙游戏开挂秘诀
  18. 如何安装proposed(候选更新包)软件包
  19. 基于Android studio的手机联系人信息获取
  20. iPhone相关产品型号汇总(iphone/ipad)

热门文章

  1. 中文影评分类的神经网络模型
  2. RabbitMQ问题系列:(一)
  3. 超分辨率重建SRCNN--Matlab 7.0中运行
  4. 推荐 :降维是数据科学家的必由之路
  5. 如何通俗地解释数列极限的定义
  6. php unicode转文字,unicode如何转汉字
  7. Linux那些事儿之我是Hub(2)
  8. BUUCTF:面具下的flag
  9. cocoapods更新本地库
  10. 前端网络基础 - axios源码分析