如何将十进制拆分为长尾数和字节指数?或者如何在 C++ 中读取 C# 十进制

本文关键字:十进制 或者 C++ 读取 拆分 长尾 字节 指数 | 更新日期: 2023-09-27 18:34:28

这个问题与我的另一个这个问题相反。我需要做相反的操作。我有 c# 十进制,我需要将其转换为此结构:

    public struct significand
    {
        public uint mantissa;  // or ulong
        public sbyte exponent;
    }

稍后我通过 p/invoke 将此结构传递给 c++ 库。如何将decimal转换为此结构?我想也许我应该以某种方式使用Decimal.GetBits方法?或者也许我可以以某种方式声明 c++ 结构,以便十进制将自动转换为它(我认为它们应该是二进制兼容的(。目前我正在使用这样的 c++ 结构:

struct significand_t
{
uint32_t mantissa;
int8_t exponent;
};

如何将十进制拆分为长尾数和字节指数?或者如何在 C++ 中读取 C# 十进制

在这里看看二进制浮点和.NET

您会发现一些示例代码的链接对您的情况很有用。

-

-r