【ULP】什么是ULP

简介: 【ULP】什么是ULP

定义:对于给定的浮点格式,特定实数值的 ulp 是与此实数值左右最近的两个浮点数的距离。

IEEE754标准的32位浮点数为例。如果想表示实数值 0.1 是无法准确表示的,只能用最接近 0.1 的可以精确表示的浮点数来表示。这样的数有两个,设为A、B,它们的十六进制和十进制表示分别为:

A:
十六进制:0x3dcccccc
十进制:0.099999994039536
B:
十六进制:0x3dcccccd
十进制:0.10000000149012

那么 0.1 的 ulp 就等于 |A - B| = 0.00000000745076

如果计算机 1 使用向下近似的方法用 A 来表示 0.1

那么误差ulps = 0.1 - 0.099999994039536 = 0.000000005960464 = (0.000000005960464 / 0.00000000745076) ≈ 0.8

如果计算机 2 使用向上近似的方法用 B 来表示 0.1

那么误差ulps = 0.10000000149012 - 0.1 = 0.00000000149012 = (0.00000000149012 / 0.00000000745076) ≈ 0.2

由上述计算可知,在 IEEE754 标准的 32 位浮点数的前提下,计算机 1 关于 0.1 的计算误差为 0.8 ulps,计算机 2 关于 0.1 的计算误差为 0.2 ulps。

相关文章
|
SQL 数据库
浅谈null
前言: 我们平时对SQL的数值处理的过程中,经常会纠结一个问题,要不要设置为null?那么null到底是什么意思?在这篇文章中,我将为大家简单的介绍一下我们使用的null。
5904 0
浅谈null
The Sandwich Rule
目标:训练一个可以直接以任意宽度运行的单一网络。其实是在权重共享的条件下,我们可以根据不同的硬件设备挑选不同宽度的网络,不再重训练一个权重。
128 0
The Sandwich Rule
|
Serverless 程序员 云计算
Serverful
Serverful
180 0
Hulk
Hulk
117 0
Hulk
|
IDE Java 程序员
What is null?
按照惯例还是在文章开头随便聊聊。之前这个环节是借鉴的why哥,叫“荒腔走板”。现在决定还是换一个有自己特色的名字,冥思苦想,最终拍板“Y说”。 有一段时间没在公众号更新文章了,其实也不是忙,就是有点懒(主要原因),再加上没有太多灵感,所以,很抱歉~
245 0
|
JavaScript 前端开发
|
JavaScript 前端开发