【发布时间】:2013-04-29 02:27:11
【问题描述】:
我目前正在研究霍夫曼解码。我有一个String 表示所有字符编码(即“1101000100000001”)。我试图将它分成 8 组并返回其相应的值(即“11010001”将返回 209)。但是,它似乎不适用于较小的文件。以下是我拥有的代码。提前感谢您的帮助!
for(char bit : textbytes.toCharArray())
{
if(bit == '1')
{
target |= 1 << bitCount;
}
bitCount++;
if(bitCount >= 8)
{
bitCount = 0;
bits.add(target);
target = 0;
}
}
byte[] bitstring = new byte[bits.size()];
for(int i = 0; i < bits.size(); i ++)
{
bitstring[i] = bits.get(i);
compressedFile.write(bitstring[i]);
}
附:有些部分是从网上摘来的,不是很懂(比如target |= 1<< bitCount)
【问题讨论】:
-
任何特定的语言偏好?
-
我认为你应该用 0 填充它
-
嗯,即使有超过 8 个 1 和 0,它似乎也不适用于较小的文件
标签: java file compression huffman-code