Следующий код приводит к двоичному файлу, который в качестве дополнительного байта перед представлением значения 10.
int main()
{
unsigned int data0 = 8;
unsigned int data1 = 9;
unsigned int data2 = 10;
unsigned int data3 = 11;
std::ofstream file("test.bin", std::ios_base::out, std::ios_base::binary);
file.write(reinterpret_cast<char*>(&data0), sizeof(data0));
file.write(reinterpret_cast<char*>(&data1), sizeof(data1));
file.write(reinterpret_cast<char*>(&data2), sizeof(data2));
file.write(reinterpret_cast<char*>(&data3), sizeof(data3));
file.close();
return 0;
}
Вот как выглядит hexdump файла:
08 00 00 00 09 00 00 00 0D 0A 00 00 00 0B 00 00 00
| 8 -> OK | 9 -> OK |??| 10 -> OK | 11 -> OK
Что здесь происходит с байтом перед 10?