Как получить биты «double» как «длинные»

Я хотел бы манипулировать поразрядным представлением чисел с плавающей запятой в C #. BinaryWriter и BinaryReader делают это следующим образом:

public virtual unsafe void Write(double value)
{
    ulong num = *((ulong*) &value);
    ...
}
public virtual unsafe double ReadDouble()
{
    ...
    ulong num3 = ...;
    return *((double*) &num3);
}

Есть ли способ сделать это без небезопасного кода, и без накладных расходов на фактическое использование BinaryWriter и BinaryReader?

10
задан Qwertie 17 December 2010 в 23:19
поделиться