gpt4 book ai didi

java - 我怎样才能在java中连接两个字节?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:58 25 4
gpt4 key购买 nike

我有一个名为 writePos 的整数,它的值介于 [0,1023] 之间。我需要将它存储在名为 bucket 的字节数组的最后两个字节中。所以,我想我需要将它表示为数组最后两个字节的串联。

  1. 我如何将 writePos 分解成两个字节,当连接并转换为 int 时,生成 writePos又是?

  2. 一旦我将它分解为字节,我将如何进行连接?

最佳答案

这将由 ByteBuffer 进行高层覆盖。

short loc = (short) writeLocation;

byte[] bucket = ...
int idex = bucket.length - 2;
ByteBuffer buf = ByteBuffer.wrap(bucket);
buf.order(ByteOrder.LITTLE__ENDIAN); // Optional
buf.putShort(index, loc);

writeLocation = buf.getShort(index);

可以指定顺序,或保留默认顺序 (BIG_ENDIAN)。

  1. ByteBuffer封装了原来的字节数组,改成ByteBuffer对字节数组也有影响。
  2. 可以使用顺序写入和读取定位(查找),但在这里我使用重载方法通过 index 立即定位。
  3. putShort 写入字节数组,修改两个字节,一个 short。
  4. getShort 从字节数组中读取一个short,可以放入一个int。

解释

Java 中的 short 是一个双字节(有符号)整数。这就是意思。顺序是LITTLE_ENDIAN:最低有效字节在前(n % 256,n/256)还是big endian。

关于java - 我怎样才能在java中连接两个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892896/

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