我有一个.bin文件,其像素数据以4位格式存储(即每个像素为4位)。如何将数据作为4位读入C程序。 Char以8位块读取它,所以如果我有一个指向文件开头的指针并递增它,它会跳过一个像素。
答案 0 :(得分:1)
我不知道任何允许您以小于一个字节的增量读取文件的处理器(尽管某些处理器中字节中的位数不同),并且C ++中没有支持读取块大小不到一个字节。假设一个字节中有8位,则需要读取一个字节,然后将其分成两个像素。
如果您的读取返回unsigned char c,那么
sometype pixel1 = c >> 4;
sometype pixel2 = c & 0xf;