这个静态变量声明如何返回无穷大
本文关键字:返回 无穷大 何返回 静态 变量 声明 | 更新日期: 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,因为内存中的字节序很少。