私はC#でポータブルクラスライブラリを開発していて、ビットをに変換したいと思ってdoubleいlongます。この問題の最も簡単な解決策はBitConverter.DoubleToInt64Bitsメソッドを使用することですが、残念ながら、このメソッドは.NETクラスライブラリのポータブルライブラリサブセットでは使用できません。
別の方法として、次の「2パス」ビット変換を考え出しました。
var result = BitConverter.ToInt64(BitConverter.GetBytes(x), 0);
私のテストでは、この式が一貫してと同じ結果を生成することが示されていDoubleToInt64Bitsます。ただし、私のベンチマークテストでは、この代替の定式化は、完全な.NETFrameworkアプリケーションに実装した場合よりも約4倍遅いことも示されています。DoubleToInt64Bits
ポータブルライブラリサブセットのみを使用して、DoubleToInt64Bits上記の私の定式化よりも迅速な置換を実装することは可能ですか?