这个静态变量声明如何返回无穷大

本文关键字:返回 无穷大 何返回 静态 变量 声明 | 更新日期: 2023-09-27 18:36:35

我正在尝试将一些C#代码(花栗鼠物理引擎)移植到Xojo。

在类声明中,声明了两个公共静态变量:

public static byte[] INFINITY = { 0x00, 0x00, 0x80, 0x7F };
public static float Infinity
{
    get
    {
        return BitConverter.ToSingle(INFINITY, 0);
    }
}
根据

我的理解,根据 MSDN 文档,对静态变量 Infinity 的调用应返回由从索引 0 开始的四个字节形成的单精度浮点数,即应将0x0000807F作为 32 位整数返回。这不是32895吗?

这个静态变量声明如何返回无穷大

不,此字节是存储浮点数据的低级表示:https://en.wikipedia.org/wiki/Single-precision_floating-point_format

此外,这是一个非常有用的IEEE格式在线计算器:http://www.h-schmidt.net/FloatConverter/IEEE754.html

尝试将"十六进制表示"设置为 0x7f800000,您会在"转换为双精度后"框中获得"无穷大"。

顺便说一下,该值是0x7f800000,而不是0x0000807f,因为内存中的字节序很少。