gpt4 book ai didi

java - 为什么 ByteBuffer.getFloat 返回 0.0?

转载 作者:行者123 更新时间:2023-11-29 08:09:37 26 4
gpt4 key购买 nike

ByteBuffer byteBuffer 通过 TCP/IP 连接接收,在 NetBeans 模拟器中可见,并且在字节 4、5、6 和 7 中包含 0x2b、0x69、0x80 和 0x3f 以用于此中断。如果字节顺序错误,我会期望浮点值不正确或可能是某种类型的数字异常,但对于各种 4 字节集并不总是 0.0。对于从该 ByteBuffer 中读取的许多其他 float ,在索引 8、12 等处,也会发生同样的事情。为什么以下始终为 0.0?

float f = byteBuffer.getFloat(4);

最佳答案

无法重现:

import java.nio.ByteBuffer;

public class Test {

public static void main(String[] args) {
byte[] bytes = { 0x1, 0x1, 0x1, 0x1, 0x2b, 0x69, (byte) 0x80, 0x3f };
ByteBuffer buffer = ByteBuffer.wrap(bytes);
System.out.println(buffer.getFloat(4));
}
}

正如 aix 评论的那样,我怀疑您的缓冲区并不真正包含您认为的内容。

如果您尝试使用 getInt(4) 会发生什么?

关于java - 为什么 ByteBuffer.getFloat 返回 0.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com