我想从小端格式的文件中一次读取 8 位,我认为我的 cpu 也是小端,所以我不必担心字节序,对吧?
我正在阅读的是数字,来自 RAW12 文件的 RGGB CFA 强度值。
这是我的代码 -
uint8_t first8bits, second8bits, third8bits;
file.read((char*)&first8bits, sizeof(uint8_t));
file.read((char*)&second8bits, sizeof(uint8_t));
file.read((char*)&third8bits, sizeof(uint8_t));
Red_channel = (first8bits) << 4 | (second8bits & 0xF0) >> 4;
Green_channel = (second8bits & 0x0F) | (third8bits);
我见过其他人将它读取 8 位到一个 char 数组中,然后将其转换为一个数字,我该怎么做?由于我正在测试代码的机器是小端,我认为我不需要进行字节交换,但是如果其他人在大端机器上测试此代码怎么办,如果机器是小端或大端,我如何在运行时找到?
任何帮助我都会非常感激。