将列表中的值编码为BitArray

时间:2011-05-05 08:19:35

标签: c# .net encoding bit-manipulation bitarray

我有N种颜色的列表。我需要将这些值表示为BitArray。如果N = 129到255,显然每个颜色应该表示为长度为8的BitArray。它类似于编码数字,但是如果我知道该列表中颜色的索引,我怎样才能获得实际的BitArray?

1 个答案:

答案 0 :(得分:2)

你需要的是一个字节的数组,而不是BitArray(当然也不是一个BitArrays数组)。如果可以使用129到255之间的数字唯一地定义单个颜色,那么您需要8位来表示它。

BitArray用于有效存储大量;使用它存储8位是没有意义的。

另一方面,您可以将一个字节数组(每个字节是单一颜色)存储到一个大的BitArray中。但是,如果您需要检查整个颜色列表,一次遍历多个颜色的单个位,那只会有意义。

[编辑] 准确地说,正如Henk指出的那样,如果 N 介于0和255之间,则需要8位。如果颜色总数<= 127,并且您使用129到255之间的数字标记它们,那么您只需要7位。但我相信OP想要说他们至少有129种颜色,不超过255种颜色。