Tôi đang suy nghĩ về việc ghi một số dữ liệu vào luồng bit bằng cách sử dụng C. Có hai cách để ý. Một là ghép các ký hiệu độ dài bit biến thành một chuỗi bit liền nhau, nhưng theo cách này, bộ giải mã của tôi có thể sẽ khó tách các biểu tượng đó khỏi luồng bit liên tục này. Một cách khác là phân phối cùng một lượng bit cho biểu tượng và theo cách đó, bộ giải mã có thể dễ dàng khôi phục dữ liệu ban đầu, nhưng có thể có sự lãng phí bit vì các biểu tượng có các giá trị khác nhau. không (các bit chất thải này tôi đoán).Cách viết một bitstream
Bất kỳ gợi ý nào tôi nên làm?
Tôi là người mới lập trình. Bất kỳ trợ giúp sẽ được đánh giá cao.
Đây là câu trả lời tương tự của tôi câu hỏi ở đây: http: // stac koverflow.com/questions/11253123/how-can-i-print-a-bit-instead-of-byte-in-a-file/11253310#11253310 –
Cách thông thường là đóng gói các bit, nhưng yêu cầu logic biết số bit ở phía bên kia. Bạn có thể sẽ giải mã từng chút một để biết khi nào bạn đã đến cuối biểu tượng. –
Câu hỏi của bạn liên quan đến lĩnh vực mã hóa. Huffman mã hóa, như đã đề cập dưới đây, là một lựa chọn. Nhưng có những người khác như Huffman mã hóa không phải là người duy nhất (nhưng nó chắc chắn là phổ biến nhất). Xem cuốn sách "Thuật toán nén và mã hóa" của Moffat và Turpin. Hầu hết các cuốn sách nén đều có thứ gì đó về viết mã; cuốn sách này tập trung vào viết mã. Trong điều khoản của "thời gian khó tách", bạn cần một mã mà là tiền tố miễn phí - không có mã là tiền tố của bất kỳ khác. – Ray