我的二进制代码为 10111 , 100011 , 11101111 等。现在应该使用数据结构存储这些代码,以便存储它们的最小尺寸?
我不能使用字符串数组,因为与存储上述二进制代码的十进制等效值相比,所需的大小会更多。
答案 0 :(得分:10)
java.util.BitSet
就是为此设计的。
答案 1 :(得分:7)
根据代码的长度,只需使用int
或long
。
答案 2 :(得分:3)
如果它们很短,请使用byte
,int
,long
(视短暂程度而定)。
如果它们会更长一些,请使用byte
s,int
或long
s的数组。例如,如果您需要存储256位代码,则可以在long[4]
中执行此操作。
如果您需要存储的代码长度差异很大,您可以考虑使用length
成员提供位数的类和byte
,int
,{ {1}},long
,byte[]
或int[]
成员用于存储它们(具体取决于您希望的大小和粒度)。或者,如果您真的想尽可能多地打包,可以从存储区域中留出一些位来保存代码中的位数。
答案 3 :(得分:0)
每个二进制代码可以分成8位(一个字节)。如果尾部小于8位,则有必要定义如何处理尾部。字节数组应该很好地存储每个部分。