加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否有可能写出一个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将是一个良好的开端.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读