如何将十进制分割成长尾数和sbyte指数?或者如何在c ++中读取c#decimal?

时间:2013-10-08 12:39:15

标签: c#

这个问题与我的另一个this问题相反。我需要做相反的操作。我有c#decimal,我需要转换为这个结构:

    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;
};

1 个答案:

答案 0 :(得分:-1)

点击此处了解Binary floating point and .NET

您会发现某些示例代码的链接对您的案例非常有用。

- R的