On Wednesday, September 22, 2021 at 12:58:04 AM UTC+7, Harry Potter wrote:
Hi! I am working on file compression. Up to now, I have been writing to a bit stream the wrong way, i.e. starting at bit 0. Now, I need to write it starting at bit 7. Can somebody supply the p-code on how to do it?
Bits within bytes:
It does not matter whether you treat Bit 0 or Bit 7 first, as long as your decompressor
and compressor use the same approach.
If you have working code and insist on reversing the sense, a table look-up might be the
easiest way.
unsigned char reverser[256] = {0x00, 0x80, 0x40, 0xc0, 0x20, ...
Bytes within larger units (e.g. uint32):
This is a more serious issue, if you want to be able to compress on a Big-endian machine
and decompress on Little-Endian (or vice versa). Processing the file byte-by-byte is the
sure-fire way to bypass the issue.
Assuming C programming, do NOT use C's built-in bitfields to address these issues!
Different compilers may pack those bits in different ways.
Cheers,
James
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)