是否有可能写出一个C#double并用Java读取它?
发布时间:2020-12-16 09:44:27 所属栏目:百科 来源:网络整理
导读:是否有可能在C#中写出双字节的8字节表示,然后在 Java中的那8个字节中读取与编码的相同的双数字? 解决方法 是的,java和.NET都使用IEEE-754表示,尽管Java可能会省略一些标志.这里的主要问题是字节序,如果需要,这是微不足道的.例如,在.NET中,您可以将其处理为
是否有可能在C#中写出双字节的8字节表示,然后在
Java中的那8个字节中读取与编码的相同的双数字?
解决方法
是的,java和.NET都使用IEEE-754表示,尽管Java可能会省略一些标志.这里的主要问题是字节序,如果需要,这是微不足道的.例如,在.NET中,您可以将其处理为:
double value = ... byte[] bytes = BitConverter.GetBytes(value); 和: byte[] bytes = ... double value = BitConverter.ToDouble(bytes); 字节序数确定哪个字节首先/最后,但在它们之间切换就像反转数组一样简单;例如,如果你想要“big-endian”,那么你可以转换为: if(BitConverter.IsLittleEndian) { Array.Reverse(bytes); } (记得在阅读和写作时都这样做) 我恐怕我不知道java的相同,但它绝对是完全可用的 – 我怀疑ByteBuffer.putDouble / ByteBuffer.getDouble将是一个良好的开端. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |