2

我有二进制代码1011110001111101111等。现在我应该使用什么数据结构来存储这些代码,以便存储它们需要最小大小?

我不能使用字符串数组,因为与存储上述二进制代码的十进制等效值相比,所需的大小将更多。

4

4 回答 4

10

java.util.BitSet如果长度不固定,则专为此设计。

于 2012-04-04T10:47:03.797 回答
7

根据代码的长度,只需使用intlong

于 2012-04-04T10:42:36.457 回答
3

如果它们很短,请使用byte, int, long(取决于有多短)。

如果它们会更长一点,请使用bytes、ints 或longs 的数组。例如,如果您需要存储 256 位代码,您可以在long[4].

如果您需要存储的代码的长度变化很大,您可以考虑一个类,其length成员给出位数和一个byte, int, long, byte[],int[]long[]用于存储它们的成员(取决于大小和您想要的粒度类型)。或者,如果您真的想尽可能多地打包,您可以从存储区域中留出一些位来保存代码中的位数。

于 2012-04-04T10:46:11.623 回答
0

每个二进制代码可以按 8 位(一个字节)分成几部分。如果尾部小于 8 位,则有必要定义如何处理尾部。字节数组应该在这里很好地存储每个部分。

于 2012-04-04T10:48:04.337 回答