2

私は現在、ハフマン復号化に取り組んでいます。すべての文字エンコーディングの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]);
            }

PSインターネットから取った部分があるので、完全には理解できません( などtarget |= 1<< bitCount

4

2 に答える 2