title: How to get the bits of a "double" as a "long"
body: <p>I would like to manipulate the bitwise representation of floating-point numbers in C#. BinaryWriter and BinaryReader do it this way:</p>
  
  <pre><code>public virtual unsafe void Write(double value)
  {
      ulong num = *((ulong*) &amp;value);
      ...
  }
  public virtual unsafe double ReadDouble()
  {
      ...
      ulong num3 = ...;
      return *((double*) &amp;num3);
  }
  </code></pre>
  
  <p>Is there a way to do this without unsafe code, and without the overhead of actually using BinaryWriter and BinaryReader?</p>