Before I start, just some background information:

我正在使用编译器标准数学库(符合IEEE-754)在Keil uVision3中编译的ARM7微控制器(LPC2294 / 01)上运行裸机应用程序 .

The issue: I 'm having trouble wrapping my head around what exactly constitutes an '溢出'对2个单精度浮点输入的总和 .

最初,我的印象是,如果我试图将任何正值添加到可以用IEEE-754表示法表示的最大值,结果将产生溢出异常 .

例如,假设我有:

a = 0x7f7fffff (ie. 3.4028235..E38);

b = 0x3f800000 (ie. 1.0)

我期望将这两个值相加会导致IEEE-754中定义的溢出 . 令我最初的惊讶,结果只返回'a'的值,没有标记异常 .

所以我想,因为精确度(或者你喜欢的分辨率)随着所表示的值的增加而减小,所以在这种情况下,值“1”可能由于其相对不重要而有效地向下舍入到0 .

So that begged the question: 在这种情况下,'b'的最小值会导致溢出异常吗?它取决于IEEE-754的具体实现吗?

也许就像我不了解如何在这种特殊情况下确定最小“重要”精度一样简单,但是考虑到下面的代码,为什么第二个和会导致溢出而不是第一个?

static union sFloatConversion32

{

unsigned int unsigned32Value;

float floatValue;

} sFloatConversion32;

t_bool test_Float32_Addition(void)

{

float a;

float b;

float c;

sFloatConversion32.unsigned32Value = 0x7f7fffff;

a = sFloatConversion32.floatValue;

sFloatConversion32.unsigned32Value = 0x72ffffff;

b = sFloatConversion32.floatValue;

/* This sum returns (c = a) without overflow */

c = a + b;

sFloatConversion32.unsigned32Value = 0x73000000;

b = sFloatConversion32.floatValue;

/* This sum, however, causes an overflow exception */

c = a + b;

}

是否存在可以应用的通用规则,使得可以提前知道(即,不执行总和),给定两个浮点数,它们的总和将导致IEEE-754定义的溢出?

Java忽略算术溢出,IEEE-754:“最小”溢出条件相关推荐

  1. Java入门之7:Java中的float和double类型的浮点数是怎么按照IEEE 754标准存储的?

    前言: 这篇博文,我写了好几天--,里面涉及的基础概念比较多,内容比较多,举例也比较多,想搞清楚明白就难免 我自己都会觉得啰嗦,我整理了目录出来,看完需要一点时间,可以自行根据需要.感兴趣的 选择阅读 ...

  2. IEEE 754二进制浮点数算术标准

    可能很多人都遇到过浮点数精度丢失的问题,下面以JavaScript为例. 1 - 0.9 = 0.09999999999999998 纳尼,不应该是0.1么,怎么变成0.099999999999999 ...

  3. Java内存模型和常见的内存溢出类型及解决方案

    Java内存模型与常见的内存溢出 一. Java 运行过程和内存分配 1 Java的平台无关性 2 Java内存模型 2.1Java内存模型图 3 内存结构详解 3.1 元空间(MetaSpace) ...

  4. 模拟JAVA堆内存溢出和栈内存溢出

    文章目录 1. 模拟堆内存溢出 2. 模拟栈内存溢出 1. 模拟堆内存溢出 为了更快的出现堆内存溢出,可以限制Java堆的大小为10MB(不限制也可以).代码如下(可直接复制使用): package ...

  5. 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数

    本次笔记内容: 04.浮点数的计算机表示 文章目录 IEEE的浮点数标准 IEEE的754标准 浮点数示例 计算机中浮点数二进制表示 浮点数的类型 规格化浮点数(Normalized) 规格化浮点数示 ...

  6. IEEE 754浮点数标准详解

    转载于:http://c.biancheng.net/view/314.html 在计算机系统的发展过程中,业界曾经提出过许多种实数的表达方法,比较典型的有相对于浮点数(Floating Point ...

  7. IEEE 754 浮点数

    1. 定点数(Fixed Point Number) 2. 浮点数(Floating Point Number) 3. IEEE 754 标准   3.1 什么是 IEEE 754   3.2 IEE ...

  8. c语言变凉存储性,C语言数据的表示和存储(IEEE 754标准)

    C语言的数据类型大体上分为整数和浮点数两种类型.因为char和指针类型实际上都是整数类型. 移码:给每一个数值加上一个偏置常数即可.通常是加上2^(n-1)或者是2^(n-1)-1这里的n通常取编码的 ...

  9. 单精度浮点数计算机存储的理解(IEEE 754)

    浮点数剖析 以下是该标准对浮点数格式的描述. [编辑]本文表示比特的约定 把W个比特(bit)的数据,从内存地址低端到高端,以0到W−1编码.通常将内存地址低端的比特写在最右边,称作最低有效位(lea ...

最新文章

  1. 《Attention is All You Need》浅读(简介+代码)
  2. Python游戏开发,Pygame模块,Python从零开始带大家实现魔塔小游戏
  3. 什么是mysql的主从复制?
  4. python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...
  5. JMeter使用总结
  6. 0基础自学前端好,还是报班培训好?
  7. Java与jar之间的区别
  8. 单片机电子时钟设计(期末课程设计)
  9. SQL 查询速度慢原因及优化方法(转载)
  10. [杂记]注册电气工程师考试复习及考试杂谈
  11. 双拼输入法是个啥以及我是如何学会使用它的
  12. 方程思想应用于化学方程式配平
  13. 纵向手风琴html,CSS3制作垂直手风琴
  14. 使用gdal的ogr创建shapefile文件(c++)
  15. Arduino循迹小车教程一----材料篇
  16. springboot dubbo 既是提供者又是消费者demo源码
  17. 公比为无理数的等比数列的近似表示
  18. 计算机网络中删除自己的共享,如何删除我的电脑中共享文档
  19. crontab shell 每5秒执行_shell之定时周期性执行脚本-crontab
  20. 正则表达式的或匹配——[]和|(优先匹配)

热门文章

  1. [翻译]IE8下VML的变化
  2. tf.nn.softmax_cross_entropy_with_logits 和 tf.contrib.legacy_seq2seq.sequence_loss_by_example 的联系与区别
  3. ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
  4. java中的alert是什么意思_javascript 中如何使用alert?
  5. 【数理知识】《矩阵论》方保镕老师-第2章-\lambda 矩阵与 Jordan 标准形
  6. Ardino基础教程 22_PS2摇杆
  7. Beyond Compare 3 许可证密钥被撤销
  8. 【DIY】arduino播放音乐方案——TMRpcm
  9. Altium Designer09解决局域网冲突问题
  10. 【光斑定位】空间激光通信、光斑定位、CCD、光斑定位——13000字