gpt4 book ai didi

c# - 将 Delphi Real48 转换为 C# double

转载 作者:太空狗 更新时间:2023-10-29 20:02:11 26 4
gpt4 key购买 nike

我需要能够从 Delphi Real48 转换为 C# double。

我有需要转换的字节,但正在寻找一个优雅的解决方案。问题。

以前有人必须这样做吗?

我需要在 C# 中进行转换

提前致谢

最佳答案

我四处寻找,找到了一些 C++ 代码来完成这项工作,将其转换,它似乎给出了正确的答案......如果我完全理解它,该死的:S

    private static double Real48ToDouble(byte[] real48)
{

if (real48[0] == 0)
return 0.0; // Null exponent = 0

double exponent = real48[0] - 129.0;
double mantissa = 0.0;

for (int i = 1; i < 5; i++) // loop through bytes 1-4
{
mantissa += real48[i];
mantissa *= 0.00390625; // mantissa /= 256
}


mantissa += (real48[5] & 0x7F);
mantissa *= 0.0078125; // mantissa /= 128
mantissa += 1.0;

if ((real48[5] & 0x80) == 0x80) // Sign bit check
mantissa = -mantissa;

return mantissa * Math.Pow(2.0, exponent);
}

如果有人能解释一下那就太好了:D

关于c# - 将 Delphi Real48 转换为 C# double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com