C语言:浮点数上溢、下溢学习记录
浮点数上溢、下溢
什么是上溢?
数据大于当前定义类型的范围,导致出现异常数据的现象。
(当计算导致数字过大,超过当前类型能表达的范围时,就会发生上溢。)
例子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语言:浮点数上溢、下溢学习记录相关推荐
- Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环
目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...
- Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用
文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...
- C Primer Plus 6th Edition第三章编程练习上溢下溢
3.11 编程练习 1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢.浮点数上溢和浮点数下溢的情况. int类型(整数类型)占用4字节,范围为-2^ 31 ~ 2^31-1 即-214 ...
- 数值计算基础(上溢下溢、梯度优化、牛顿法、KKT方法)
目录 上溢和下溢 病态条件 基于梯度的优化方法 KKT 方法 如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~ 上溢和下溢 上溢:当大量级的数字被近似为 时发生上溢,进一步计算会导致 ...
- 【C语言避坑指南】学习记录
学习自B站Up双笙子佯谬的视频 [C语言避坑指南]看完这个视频,我再也不害怕指针!_哔哩哔哩_bilibili课件:https://github.com/parallel101/course作业:ht ...
- 欧阳萍听口班(上)——笔记+学习记录
2019/9/23 begin again! 第三阶段(一些万能谈资)--谈理想 看"讲解"视频 配音 看"复习巩固"视频 场景1:赶作业 what are y ...
- 整数上溢和下溢与浮点上溢和下溢
整数的上溢 #include<stdio.h> #include<math.h> int main() { int zhengshu1,zhengshu2;//int 类型在3 ...
- 【双符号位判决法】定点数上溢,下溢的判别
上溢.下溢: 上溢:两个数进行运算,得到的结果的绝对值超过最大表示范围.定点整数之间只会发生上溢 下溢:两个浮点数运算,得到的结果的绝对值超过最小的表示范围.只有浮点数的运算会发生下溢 看图: 双符号 ...
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
最新文章
- shell 编程整合
- 开源分布式中间件 DBLE Schema.xml 配置解析
- PIC单片机入门_同步/异步通信技术基础
- .NET 编码的基础知识
- QT5 exec()模态显示子对话框,父子对话框都最小化后显示桌面
- 没有规则可制作目标modules_Modules简介
- 移动端APP扁平化UI设计解析
- JS中的showModelDialog详解和实例
- 投资捕鱼游戏市场的如何避雷?以及研发技术问题。
- 服务器怎么读取加密狗信息,[求助]菜鸟请教:加密狗读取数据如下,请问如何分析这些数据,怎样复制这个加密狗!...
- 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
- 遇到RAID5阵列硬盘出现问题的情况该如何解决?
- 五自由度简单机械臂运动学及动力学分析|基于MATLAB机器人工具箱Rvctool
- 微信公众号与小程序(二十——关于我如何莫名其妙建了一个电影搜索机器人这件事)
- WIN10共享打印机报错解决方法
- 51单片机DAC数模转换
- 谷歌浏览器恐龙游戏开挂秘诀
- 如何安装proposed(候选更新包)软件包
- 基于Android studio的手机联系人信息获取
- iPhone相关产品型号汇总(iphone/ipad)