问题背景:
首先,在基于动态规划的灰度图像压缩算法中,压缩前灰度值序列的每个值原本以8bit,即1byte进行存储,压缩后,灰度值序列分为n个段,每个段中的每个元素都不一定以8bit存储,具体存储位数存放在一个大小为n的byte数组中。我们称这为不定长存储。
其次,我们知道在计算机中一般为按字节编址和存储,在Python、C/C++等编程语言中主要提供的读写的最小单位也是字节,而不是比特。但要实现灰度值序列的不定长存储,按比特读写是更方便的。
info:在实际使用时,请注意考虑大小端存储的问题。
解决问题:现有一个byte值序列data[data_size],和另外一个byte值序列B[data_size]。其中第i个元素B[i],表示data[i]将以B[i]个bit存储。例如B[i]=3表示data[i]希望以3个bit存储。
输出结果: