对于作业,我正在 Visual Studio 中对 Huffman 算法进行压缩/解压缩。在获得 8 位(10101010
例如)后,我想将其转换为字节。这是我的代码:
unsigned byte = 0;
string stringof8 = "11100011";
for (unsigned b = 0; b != 8; b++){
if (b < stringof8.length())
byte |= (stringof8[b] & 1) << b;
}
outf.put(byte);
前几个位串作为一个字节正确输出,但是如果我有超过 3 个字节被推送,我会多次获得相同的字节。我不熟悉位操作,并要求有人带我完成这个或完成一个工作功能。