如何将nodejs writeDoubleBE缓冲区转换为c#double?
我有一个nodejs缓冲区如何将nodejs writeDoubleBE缓冲区转换为c#double?,c#,node.js,buffer,C#,Node.js,Buffer,我有一个nodejs缓冲区writeDoubleBE。如何在接收字节数组时将其转换为C#double nodejs代码如下: var b1 = new Buffer(8); b1.writeDoubleBE(123.123456789,0); 现在,在c#中,与b1等价的是什么?所有windows x64/x86都是小端系统,因此在进入c#字节数组后,您应该反转大端字节顺序: double b1 = BitConverter.ToDouble(bytes.Reverse().ToArray()
writeDoubleBE
。如何在接收字节数组时将其转换为C#
double
nodejs代码如下:
var b1 = new Buffer(8);
b1.writeDoubleBE(123.123456789,0);
现在,在
c#
中,与b1
等价的是什么?所有windows 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()
}