ieee-754相关内容

C# 中的浮点数学是否一致?是真的吗?

不,这不是另一个“为什么是 (1/3.0)*3 != 1" 问题. 我最近阅读了很多关于浮点的文章;具体来说,相同的计算可能如何在不同的架构或优化设置下给出不同的结果. 这是存储重播或点对点联网(与服务器-客户端相反),它依赖于所有客户端在每次运行程序时生成完全相同的结果——一个浮点计算中的小差异可能导致不同机器上的游戏状态截然不同(甚至在同一台机器上!) 即使在“遵循"IEEE ..
发布时间:2021-12-02 13:48:20 C#/.NET

Java中的Float和double数据类型

float 数据类型是单精度 32 位 IEEE 754 浮点数,double 数据类型是双精度 64 位 IEEE 754 浮点数. 什么意思?什么时候应该使用 float 而不是 double ,反之亦然? 解决方案 维基百科页面这是一个很好的起点. 总结: float 以 32 位表示,其中 1 个符号位、8 位指数和 23 位有效数(或从科学记数法中得出的数字:2 ..
发布时间:2021-11-25 14:36:17 Java Web开发

64 位浮点数在所有现代 PC 上的行为是否相同?

我想知道我是否可以假设对相同的 64 位浮点数进行相同的操作在任何现代 PC 和最常见的编程语言中给出完全相同的结果?(C++、Java、C# 等).我们可以假设,我们正在对数字进行运算,结果也是一个数字(没有 NaN、INF 等). 我知道有两个非常相似的使用浮点数的计算标准(IEEE 854-1987 和 IEEE 754-2008).但是我不知道实际情况如何. 解决方案 实现 ..
发布时间:2021-11-25 07:04:03 C#

32 位和 64 位操作系统中的双字节大小

运行时 double 大小有区别吗我的应用程序在 32 位和 64 位环境下? 如果我没记错的话,32位环境下的double会占用0后的16位,而64位环境下的double会占用32位,对吗? 解决方案 不,一个 IEEE 754 double-精度浮点数总是64位.类似地,单精度 float 总是 32 位. 如果您的问题特别是关于 C# 和/或 .NET(如您的标签所示), ..
发布时间:2021-11-25 06:18:08 C#

Java - 将十六进制转换为 IEEE-754 64 位浮点数 - 双精度

我正在尝试将以下十六进制字符串:“41630D54FFF68872"转换为 9988776.0 (float-64). 使用单精度 float-32 我会这样做: int intBits = Long.valueOf("hexFloat32", 16).intValue();float floatValue = Float.intBitsToFloat(intBits); 但是当使用上面 ..
发布时间:2021-11-25 05:24:02 C#

.NET Core 中游戏开发的浮点确定性

背景 我们正在使用 C# 和 .NET Core 开发 RTS 游戏引擎.与大多数其他实时多人游戏不同,RTS 游戏倾向于通过将玩家输入同步到其他玩家,并同时在所有客户端上同步运行游戏模拟来工作.这要求游戏逻辑具有确定性,以免游戏不同步. 非确定性的一个潜在来源是浮点运算.从我收集到的主要问题是旧的 x87 FPU 指令 - 它们使用内部 80 位寄存器,而 IEEE-754 浮点值是 ..
发布时间:2021-11-24 17:10:04 C#

iOS ARM 设备 (iPhone 4) 上支持次规范 IEEE 754 浮点数

在将应用程序从 Linux x86 移植到 iOS ARM (iPhone 4) 时,我发现浮点运算和小值的行为差异. 64 位浮点数 (double) 小于[+/-]2.2250738585072014E-308 在非正规/非正规化/次正规数a href="http://en.wikipedia.org/wiki/IEEE_754-1985" rel="nofollow noreferre ..
发布时间:2021-11-17 21:47:19 其他开发

使用按位运算将 Int 转换为 Float 或 Float 为 Int(软件浮点)

我想知道您是否可以帮助解释将整数转换为浮点数或将浮点数转换为整数的过程.对于我的班级,我们将仅使用按位运算符来执行此操作,但我认为对从类型到类型的转换的坚定理解将在此阶段对我有更多帮助. 据我目前所知,要使 int 浮点数,您必须将整数转换为二进制数,通过找到有效数、指数和分数来标准化整数的值,然后从那里输出浮点数中的值? 对于float转int,你需要将值分成有效数、指数和分数,然后 ..
发布时间:2021-11-17 21:38:28 其他开发

如何实现浮点值的 totalOrder 谓词?

IEEE 754 规范在 §5.10 中定义了一个总顺序,我想在汇编中实现. 从维基百科描述,听起来很像这样可以实现了无分支,或几乎无分支,但我还没有想出一个像样的方法;我在主要编程语言中找不到任何现有的符合规范的实现 当比较两个浮点数时,它作为≤操作,除了totalOrder(−0, +0) ∧ ¬ totalOrder(+0, -0),同一个浮点数的不同表示是按其指数乘以符号位排序 ..
发布时间:2021-09-29 19:46:22 其他开发

IEEE754的C ++静态断言

) 如何对IEEE754规范(浮点表示法)进行静态声明? 我的想法是这样的: 静态无符号字符c [8] = {0,0,0,0,0,0xd0,0x84,0x40};静态double d = * reinterpret_cast(c);BOOST_STATIC_ASSERT(d == 666.); 但是它不起作用:(我应该指出,我的编译器不是C ++ 11(我使 ..
发布时间:2021-05-15 19:34:31 其他开发

正弦余弦模块化扩展精度算法

我已经在正弦/余弦的许多实现中看到了一种所谓的扩展模块化精度算法.但是,这是为了什么呢?例如,在 cephes实现中,减小到范围[0,pi/4],他们正在执行此模块化精度算法以提高精度. 在代码下面: z =((x-y * DP1)-y * DP2)-y * DP3; 其中DP1,DP2和DP3是一些硬编码系数.如何在数学上找到那些系数?我已经知道“模数扩展算术"对于大数字的用途,但 ..
发布时间:2021-05-15 19:34:23 其他开发

正确舍入的双精度除法

我正在使用以下算法进行双精度除法,并尝试使其在浮点软件仿真中正确取整.假设 a 为被除数,而 b 为除数. 所有操作均在Q2.62中执行. 倒数的初始近似值为 近似为 0x17504f333f9de6 (在Q2.62中为 0x5D413CCCFE779800 ). 之后,用牛顿-拉夫森迭代来近似倒数: 最后的舍入是: 如果a ..
发布时间:2021-05-15 19:34:20 其他开发

Python NaN的集合和唯一性

我偶然发现了这种有趣的Python行为,涉及到 set s中的 NaN : #测试1nan = float('nan')事物= [0,1,2,nan,'a',1,nan,'a',2,nan,nan]唯一=集合(事物)print(unique)#{0,1,2,nan,'a'}#测试2事物= [0、1、2,float('nan'),'a',1,float('nan'),'a',2,float('na ..
发布时间:2021-05-15 19:34:17 其他开发

ULP(最后一个单位)与量子(IEEE 754)之间的差异

来自 ULP Wikipedia的页面: 约翰·哈里森(John Harrison)提出的另一种定义稍有不同:ULP(x)是两个最接近的跨浮点数a和b(即a≤x≤b且a≠b的浮点数)之间的距离,假设指数范围没有上限. 从IEEE 754 2008开始: 2.1.44量子:有限浮点表示形式的量子是单位在其有效位的最后位置的值.这等于升到指数q的基数,该指数在有效数被视为整数时使用. ..
发布时间:2021-05-08 19:58:43 其他开发

偏差值和浮点指数的范围

我意识到我坐在大学课桌时没有适当注意IEEE 754标准的浮点部分.但是,即使我目前还没有为嵌入式工作而苦苦挣扎,但由于缺乏某种数学计算方法并完全掌握标准,我仍然感到自己无能为力,也无力成为工程师称号. 我知道的是 0 和 255 是表示 0 和 infinity 的特殊值值. 有一个隐式 1 用于将 23bit 表示为 24 一些[-125 ... 128] .这确实是复 ..
发布时间:2021-05-08 19:58:19 其他开发

将python中的IEEE浮点数转换为TI TMS320C30 32位浮点数

我需要按照以下约定将python float转换为TI DSP TMS320C30 float表示形式: http://www.ti.com/lit/an/spra400/spra400.pdf#page=13 我已经尝试了一些方法,但是似乎无法将所提出的算法笼罩在脑海中.我还发现了 一些期望值的例子: #Float TI结果32位的十进制值################## ..
发布时间:2021-05-08 19:58:13 其他开发