#include #include #include int main() { const unsigned long value = 0x12345678UL; const std::array bytes = {{ static_cast((value >> 24) & 0xffUL), static_cast((value >> 16) & 0xffUL), static_cast((value >> 8) & 0xffUL), static_cast(value & 0xffUL) }}; unsigned long restored = 0; for (unsigned char b : bytes) restored = (restored << 8) | b; assert(restored == value); assert(bytes[0] == 0x12 && bytes[3] == 0x78); std::cout << static_cast(bytes[0]) << ' ' << static_cast(bytes[3]) << '\n'; }