Java Double.doubleToLongBits转换为C#BitConverter.ToDouble

Java Double.doubleToLongBits转换为C#BitConverter.ToDouble,java,c#,double,Java,C#,Double,我可以使用将Java double转换为8字节,写入网络,然后使用C#读取这些位吗 考虑到C#docs没有提到IEEE 754,但确实提到了endianness,表示平台依赖性,我怀疑在一般情况下不会。如果我知道Java和C#进程都在英特尔X64体系结构上运行,会怎么样?Linux上有Java,Windows上有C。任何细节都会很有趣。这应该是可能的,C#确实使用IEEE 754双工。唯一的问题可能是通过网络传输它们时的端性,所以只需选择您的体系结构正在使用的一个,它就应该正确传输 注意,如果使

我可以使用将Java double转换为8字节,写入网络,然后使用C#读取这些位吗

考虑到C#docs没有提到IEEE 754,但确实提到了endianness,表示平台依赖性,我怀疑在一般情况下不会。如果我知道Java和C#进程都在英特尔X64体系结构上运行,会怎么样?Linux上有Java,Windows上有C。任何细节都会很有趣。

这应该是可能的,C#确实使用IEEE 754双工。唯一的问题可能是通过网络传输它们时的端性,所以只需选择您的体系结构正在使用的一个,它就应该正确传输


注意,如果使用
字节缓冲符
,则可以轻松选择所需的endian。只需使用它的
double
函数,无需使用
doubleToLongBits
——这只是为了防止需要将double表示转换为long。

事实上,您必须使用ByteBuffer,因为Java操作在所有体系结构上都是大端的,除非ByteBuffer被分配了LITTLE_ENDIAN顺序。@VGR JVM本身使用本机字节顺序,但是库读取和写入二进制默认为big ENDIAN。