gpt4 book ai didi

Java - 将有符号 int 转换为有符号字节数组并返回

转载 作者:行者123 更新时间:2023-12-02 05:46:25 26 4
gpt4 key购买 nike

我想将signed int 转换为signed byte[] 数组,然后将其转换回有符号int。

但是,ByteBuffers(通常的 int->buffer->byte[] 数组)对于这种情况来说太慢了。

这可以使用基本操作来完成吗?

我似乎做了很多尝试,但我还没有看到一种在所有情况下都有效的方法。 (通常,它们会因负数而失败。)

我使用 Java 工作,因此即使在中间步骤中也不可能使用无符号值。

最佳答案

private void writeInt(int val, byte[] data, int offset) {
data[offset ] = (byte)(val >>> 24);
data[offset + 1] = (byte)(val >>> 16);
data[offset + 2] = (byte)(val >>> 8);
data[offset + 3] = (byte)val;
}

private int readInt(byte[] data, int offset) {
return (data[offset] << 24)
| ((data[offset + 1] & 0xFF) << 16)
| ((data[offset + 2] & 0xFF) << 8)
| (data[offset + 3] & 0xFF);
}

关于Java - 将有符号 int 转换为有符号字节数组并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24026494/

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