Java忽略算术溢出,IEEE-754:“最小”溢出条件
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:“最小”溢出条件相关推荐
- Java入门之7:Java中的float和double类型的浮点数是怎么按照IEEE 754标准存储的?
前言: 这篇博文,我写了好几天--,里面涉及的基础概念比较多,内容比较多,举例也比较多,想搞清楚明白就难免 我自己都会觉得啰嗦,我整理了目录出来,看完需要一点时间,可以自行根据需要.感兴趣的 选择阅读 ...
- IEEE 754二进制浮点数算术标准
可能很多人都遇到过浮点数精度丢失的问题,下面以JavaScript为例. 1 - 0.9 = 0.09999999999999998 纳尼,不应该是0.1么,怎么变成0.099999999999999 ...
- Java内存模型和常见的内存溢出类型及解决方案
Java内存模型与常见的内存溢出 一. Java 运行过程和内存分配 1 Java的平台无关性 2 Java内存模型 2.1Java内存模型图 3 内存结构详解 3.1 元空间(MetaSpace) ...
- 模拟JAVA堆内存溢出和栈内存溢出
文章目录 1. 模拟堆内存溢出 2. 模拟栈内存溢出 1. 模拟堆内存溢出 为了更快的出现堆内存溢出,可以限制Java堆的大小为10MB(不限制也可以).代码如下(可直接复制使用): package ...
- 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数
本次笔记内容: 04.浮点数的计算机表示 文章目录 IEEE的浮点数标准 IEEE的754标准 浮点数示例 计算机中浮点数二进制表示 浮点数的类型 规格化浮点数(Normalized) 规格化浮点数示 ...
- IEEE 754浮点数标准详解
转载于:http://c.biancheng.net/view/314.html 在计算机系统的发展过程中,业界曾经提出过许多种实数的表达方法,比较典型的有相对于浮点数(Floating Point ...
- IEEE 754 浮点数
1. 定点数(Fixed Point Number) 2. 浮点数(Floating Point Number) 3. IEEE 754 标准 3.1 什么是 IEEE 754 3.2 IEE ...
- c语言变凉存储性,C语言数据的表示和存储(IEEE 754标准)
C语言的数据类型大体上分为整数和浮点数两种类型.因为char和指针类型实际上都是整数类型. 移码:给每一个数值加上一个偏置常数即可.通常是加上2^(n-1)或者是2^(n-1)-1这里的n通常取编码的 ...
- 单精度浮点数计算机存储的理解(IEEE 754)
浮点数剖析 以下是该标准对浮点数格式的描述. [编辑]本文表示比特的约定 把W个比特(bit)的数据,从内存地址低端到高端,以0到W−1编码.通常将内存地址低端的比特写在最右边,称作最低有效位(lea ...
最新文章
- 《Attention is All You Need》浅读(简介+代码)
- Python游戏开发,Pygame模块,Python从零开始带大家实现魔塔小游戏
- 什么是mysql的主从复制?
- python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...
- JMeter使用总结
- 0基础自学前端好,还是报班培训好?
- Java与jar之间的区别
- 单片机电子时钟设计(期末课程设计)
- SQL 查询速度慢原因及优化方法(转载)
- [杂记]注册电气工程师考试复习及考试杂谈
- 双拼输入法是个啥以及我是如何学会使用它的
- 方程思想应用于化学方程式配平
- 纵向手风琴html,CSS3制作垂直手风琴
- 使用gdal的ogr创建shapefile文件(c++)
- Arduino循迹小车教程一----材料篇
- springboot dubbo 既是提供者又是消费者demo源码
- 公比为无理数的等比数列的近似表示
- 计算机网络中删除自己的共享,如何删除我的电脑中共享文档
- crontab shell 每5秒执行_shell之定时周期性执行脚本-crontab
- 正则表达式的或匹配——[]和|(优先匹配)
热门文章
- [翻译]IE8下VML的变化
- tf.nn.softmax_cross_entropy_with_logits 和 tf.contrib.legacy_seq2seq.sequence_loss_by_example 的联系与区别
- ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
- java中的alert是什么意思_javascript 中如何使用alert?
- 【数理知识】《矩阵论》方保镕老师-第2章-\lambda 矩阵与 Jordan 标准形
- Ardino基础教程 22_PS2摇杆
- Beyond Compare 3 许可证密钥被撤销
- 【DIY】arduino播放音乐方案——TMRpcm
- Altium Designer09解决局域网冲突问题
- 【光斑定位】空间激光通信、光斑定位、CCD、光斑定位——13000字