问题标签 [ieee-754]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binary - How do you convert from IEEE 754 single-precision floating-point format to decimal?
I understand that the first bit is the sign and that the next 8 bits is the exponent. So in this example you would have 1.1001*2^-4 ? How do I then interpret this in decimal?
floating-point - IEEE“双重”的精确文本表示
我需要以人类可读的文本形式表示 IEEE 754-1985 双(64 位)浮点数,条件是可以将文本形式解析回完全相同的(按位)数字。
如果不只打印原始字节,这可能/实用吗?如果是,将不胜感激执行此操作的代码。
c++ - 快速登录 C++ 浮点数...此代码中是否存在任何平台依赖项?
在网上搜索,我发现了以下用于计算 IEEE 格式的浮点数符号的例程。这也可以很容易地扩展到双倍。
(来源:“32 位浮点数的快速符号”,Peter Schoffhauzer)
不过,由于位二进制操作,我厌倦了使用这个例程。我需要我的代码在具有不同字节顺序的机器上工作,但我不确定 IEEE 标准规定了多少,因为我找不到今年发布的最新版本。无论机器的字节顺序如何,有人可以告诉我这是否可行?
谢谢,帕特里克
floating-point - 定点到浮点和向后
正在转换固定 Pt。(固定 n 位的分数)到 IEEE 双重安全?
即:IEEE双重格式是否可以表示一个定点可以表示的所有数字?
测试:一个数字变为浮动 pt 格式,然后回到原来的固定 pt 格式。
c - 打印、转换时考虑FPU取整模式的编译平台
编辑:我在调试期间犯了一个错误,导致我问这个问题。我看到的差异实际上在于打印双精度和解析双精度 ( strtod
)。即使经过这次整改,斯蒂芬的回答仍然很好地涵盖了我的问题,所以我想我会不理会这个问题,以防它对某人有用。
我可以访问的一些(大多数)C 编译平台在以下情况下不考虑 FPU 舍入模式
- 将 64 位整数转换为
double
; - 打印一个
double
.
这里没有什么特别的东西:Mac OS X Leopard、各种最新的 Linux 和 BSD 变体、Windows。
另一方面,Mac OS X Snow Leopard 在做这两件事时似乎将舍入模式考虑在内。当然,有不同的行为会让我烦恼不已。
以下是这两种情况的典型片段:
我的问题是:
- 我可以做一些不丑陋的事情来规范所有平台的行为吗?一些隐藏的设置告诉平台不考虑舍入模式,反之亦然?
- 是行为标准之一吗?
- 不使用 FPU 舍入模式时,我可能会遇到什么情况?向零舍入?四舍五入到最近?请告诉我只有一种选择:)
关于 2. 我在标准中找到了一个地方,据说转换为整数的浮点数总是被截断(向零舍入),但我找不到整数 -> 浮点方向的任何内容。
c# - 在 C# 之间转换 pre-IEEE-754 C++ 浮点数
在 .Net 之前,在数学协处理器之前,在 IEEE-574 之前,微软为浮点数定义了一种位模式。旧版本的 C++ 编译器愉快地使用了这个定义。
我正在编写一个需要在文件中读取/写入此类浮点数的 C# 应用程序。如何进行 2 位格式之间的转换?我需要双向的转换方法。
此应用程序将在 PocketPC/WinCE 环境中运行。
更改文件的结构超出了此项目的范围。
是否有 C++ 编译器选项指示它使用旧的 FP 格式?那将是理想的。然后,我可以使用以 null 结尾的文本字符串在 C# 代码和 C++ 代码之间交换数据,并且 C++ 方法将是 sprintf 和 atof 函数的简单包装器。
至少,我希望有人可以回复旧 FP 格式的位定义,这样我就可以在必要时组合一个低级位操作算法。
谢谢。
floating-point - 是否存在 x 的浮点值,其中 xx == 0 为假?
在大多数情况下,我知道应该使用一系列值(abs(xy) < epsilon)来实现浮点比较测试,但是自减法是否意味着结果为零?
我的猜测是 nan/inf 可能是特殊情况,但我更感兴趣的是简单值会发生什么。
编辑:
如果有人可以引用参考(IEEE 浮点标准),我很乐意选择答案?
c - 以 IEEE 754 交换格式记录/读取 C 双倍
所以我正在序列化一个 C 数据结构以供跨平台使用,并且我想确保我以跨平台的方式记录我的浮点数。
我一直打算做
但我不确定这些字节是否会以char *
IEEE 754 交换格式记录在数组中。我之前一直被跨平台问题(字节序和诸如此类)所困扰。我需要做些什么double
来获取交换格式的字节吗?
types - IEEE-754 浮点数如何工作
假设我有这个:
在二进制中,这个浮点数表示为:
0 01111111 10000000000000000000000
我分解了二进制来表示“有符号”、“指数”和“分数”块。
我不明白这是如何代表 1.5。
减去偏差 (127 - 127) 后,指数为 0,带隐式前导的小数部分为 1.1。
1.1如何缩放= 1.5???
c++ - 是否有任何具有非 IEEE C/C++ 浮点格式的现代平台?
我正在编写一个视频游戏Humm and Strumm,它的游戏引擎中需要一个网络组件。我可以轻松处理字节顺序的差异,但在尝试处理可能的float
内存格式时遇到了困难。我知道现代计算机都有标准的整数格式,但我听说它们可能并不都使用 IEEE 浮点整数标准。这是真的?
虽然我当然可以将它作为字符串输出到每个数据包中,但无论平台如何,我仍然必须转换为每个客户端的“众所周知的格式”。标准printf()
和atod()
将是不充分的。
请注意,因为这个游戏是一个免费/开源软件程序,可以在 GNU/Linux、*BSD 和 Microsoft Windows 上运行,所以我不能使用任何专有解决方案,也不能使用任何单一平台解决方案。
干杯,
帕特里克