gpt4 book ai didi

java - 在一个字节中存储多个值

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

我正在编写一个文件来存储有关 map 上位置的信息,例如对象将在何处生成。我向文件写入一个字节,在该字节内会有 x 和 y 坐标,我将如何从文件中解析它们

int typeData = stream.readByte();
int x = typeData >> 2;
int y = typeData & 3;

这是我想要实现的目标的一个例子。例如,我不确定在写作过程中我必须做什么

outStream.writeByte((x << 2) + (y | 3));

这是一个示例,此代码尚未经过测试,可能是错误的。

最佳答案

请注意,字节数据类型是 8 位有符号二进制补码整数。因此,值范围为 -128 到 +127(包括在内)。

所以当使用 int 变量(x 和 y)计算按位运算时,你是对的,如下所示: (x << 2) + (y | 3) 。然后,您可以将结果转换为字节,或者让 Java 自动转换结果,仅在最后一步调用 writeByte() 时进行。

您当然需要超过 8 位来存储坐标。要访问文件中存储的二进制数据,请记住,使用标准 Java java.nio.ByteBuffer API 时,字节缓冲区的初始顺序始终为 BIG_ENDIAN。

关于java - 在一个字节中存储多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127579/

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