我正在做一個類似huffman算法的項目。在讀取文件並生成huffman代碼(1s & 0s)之後,我必須使用按位運算將其導出到新文件。出於某種原因,當我使用按位操作導出時,文件比以前更大。用一串1和0表示前面的字符,使用按位我必須將每個1和0保存在8位的鏈中。這是我的代碼:按位明智的操作
byte currentByte = 0;
for (int i = 0, j = 0; i < binaryString.length(); i++, j++) {
if (binaryString.charAt(i) == '1') {
currentByte |= (byte) Math.pow(2, 7 - j);
}
if (i != 0 && (i % 8 == 0 || i == binaryString.length() - 1)) {
output.writeObject(currentByte);
if (i % 8 == 0) {
currentByte = 0;
j = 0;
}
}
}
謝謝。