0
私は012jのnodejsバッファを持っています。どのようにバイト配列を受信するとC#
倍に変換する?nodejs writeDoubleBEバッファをC#doubleに変換するには?
nodejsこのようなコード:
var b1 = new Buffer(8);
b1.writeDoubleBE(123.123456789,0);
今c#
でb1
の同等は何ですか?
私は012jのnodejsバッファを持っています。どのようにバイト配列を受信するとC#
倍に変換する?nodejs writeDoubleBEバッファをC#doubleに変換するには?
nodejsこのようなコード:
var b1 = new Buffer(8);
b1.writeDoubleBE(123.123456789,0);
今c#
でb1
の同等は何ですか?
のx64/x86のすべてのウィンドウは、リトルエンディアンのシステムですので、あなたは、C#、あなたのバイト配列を中に取得した後、あなたはビッグエンディアンバイト順を逆にする必要があります
double b1 = BitConverter.ToDouble(bytes.Reverse().ToArray(), 0);
あなたはどこか別のMono
上で実行する場合は、BitConverter.IsLittleEndian
を使用することができます配列を逆にする必要があるかどうかを確認します。
と同等のダブルシリアライザは、次のようになります。
double x = 1.1;
byte[] bytes = BitConverter.GetBytes(x);
if (BitConverter.IsLittleEndian)
{
// on windows `IsLittleEndian` would be always true
bytes = bytes.Reverse().ToArray()
}