Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将nodejs writeDoubleBE缓冲区转换为c#double?_C#_Node.js_Buffer - Fatal编程技术网

如何将nodejs writeDoubleBE缓冲区转换为c#double?

如何将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()

我有一个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(), 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()
}