首页 > 解决方案 > 有没有一种方法可以将 1 和 0 的数组转换为字节数组?

问题描述

我有一个 1 和 0 的 96 元素数组(我也可以使用布尔值),我用它来存储游戏中的成就(如果未解锁,则为 0,如果未解锁,则为 1),我想将其编码为 Base64(以“保存”游戏通过将所有成就数据导出到一个短字符串中)。我想先将数组转换为a byte[],以便可以使用该encodeToString(byte[] src)数组上的方法输出字符串。

我怎样才能做到这一点?有没有什么方法可以把一个 8 位的子数组转换成一个字节?这不一定要高效或漂亮。我只是为了好玩而制作这个游戏。

标签: javaarraysbytebit

解决方案


我想您应该使用不同的数据结构,例如BitSet避免直接使用按位运算符的数据结构。

BitSet achievements = new BitSet(96);
achievements.set(41);
byte[] data = achievements.toByteArray();

记住:没有必要重新发明轮子!


推荐阅读