Java Double.doubleToLongBits到C#BitConverter.ToDouble

时间:2017-03-11 20:03:08

标签: java c# double

我可以使用java.lang.Double.doubleToLongBits将Java double转换为8字节,写入网络,然后使用BitConverter.ToDouble在C#中读取这些位吗?

鉴于C#docs没有提到IEEE 754,但确实谈到了字节顺序,表明平台依赖,我怀疑不是一般情况。如果我知道Java和C#进程都在Intel X64架构上运行,该怎么办?在Linux上使用Java,在Windows上使用C#。任何细节都会很有趣。

1 个答案:

答案 0 :(得分:2)

应该可以,C#确实使用IEEE 754双打。唯一的问题可能是通过网络传输它们时的字节顺序,所以只需选择您的架构正在使用的那个,它应该正确传输。

注意,如果您使用ByteBuffer,则可以轻松选择所需的字节序。只需使用其double函数,无需使用doubleToLongBits - 这就是你需要将双重表示转换为long的情况。