将列表中的值编码为BitArray

本文关键字:编码 BitArray 列表 | 更新日期: 2023-09-27 17:55:04

我有N种颜色的列表。我需要把这些值表示成一个BitArray。如果N = 129到255,那么显然,每种颜色都应该表示为长度为8的BitArray。它类似于编码数字,但如果我知道列表中颜色的索引,我如何得到一个实际的BitArray ?

将列表中的值编码为BitArray

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

BitArray用于高效存储大数组;用它来存储8位是没有意义的。

另一方面,您可以将字节数组(其中每个字节是一种颜色)存储到一个大的BitArray中。但是,只有当你需要作为一个整体检查颜色列表,一次遍历多个颜色的单个位时,这才有意义。

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