gpt4 book ai didi

Java 字节缓冲区 : Trying to insert two bytes for decimal value 256 in a ByteBuffer Array

转载 作者:行者123 更新时间:2023-11-29 08:35:51 24 4
gpt4 key购买 nike

我在 Java 中有这个 ByteBuffer,我正在填充数据。在用数据填充缓冲区之前,我保存了前两个字节以备后用:

buffer.put((byte)0); //position 0
buffer.put((byte)0); //position 1

然后我用数据填充缓冲区并计算我插入的数据的总大小,最多可达 256 个。所以,我需要把我插入的数据的总大小放在BufferArray的前两个位置,所以我之前保存了它们。

如果我这样做:

buffer.put(1,(byte)x); // x between 0 and 255

当x在0到255之间时,我只需要1个字节(位置1)。运行代码后,我可以得到十六进制结果,例如 00 FF(x=255。255 是十六进制的 FF)

现在如果 X = 256,我得到 00 00,我需要得到 01 00(256 在十六进制中是 100)。当 x = 256 时我需要 2 个字节。现在,我该如何解决这个问题?如果我不够清楚,我可以提供更多信息。谢谢。

最佳答案

你似乎在使用大端,所以你需要这个:

buffer.put( 1, (byte)x );
buffer.put( 0, (byte)(x >> 8) );

如果您后来发现您需要小端,那么您将需要交换 0 和 1。

关于Java 字节缓冲区 : Trying to insert two bytes for decimal value 256 in a ByteBuffer Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44165665/

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