How to get the bits of a “double” as a “long”
问题 I would like to manipulate the bitwise representation of floating-point numbers in C#. BinaryWriter and BinaryReader do it this way: public virtual unsafe void Write(double value) { ulong num = *((ulong*) &value); ... } public virtual unsafe double ReadDouble() { ... ulong num3 = ...; return *((double*) &num3); } Is there a way to do this without unsafe code, and without the overhead of actually using BinaryWriter and BinaryReader? 回答1: Are you trying to avoid unsafe code altogether, or do