#include <iostream>
using namespace std;
union Test_t {
char s[4];
uint32_t i;
int32_t si;
uint8_t a[4];
};
int main() {
char* str1 = "\xEF\xBE\xAD\xDE";
char str2[5] = "\xEF\xBE\xAD\xDE";
Test_t s1;
s1.i = 0xDEADBEEF;
Test_t s2;
s2.s[0] = '\xEF';
s2.s[1] = '\xBE';
s2.s[2] = '\xAD';
s2.s[3] = '\xDE';
Test_t s3;
s3.a[0] = 0xEF;
s3.a[1] = 0xBE;
s3.a[2] = 0xAD;
s3.a[3] = 0xDE;
printf("%ld %u\n", sizeof(Test_t), s1.i);
printf("%X\n%X\n%X\n%X\n%X", *str1, *str2, s1, s2, s3);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdW5pb24gVGVzdF90IHsKCWNoYXIgc1s0XTsKCXVpbnQzMl90IGk7CglpbnQzMl90IHNpOwoJdWludDhfdCBhWzRdOwp9OwoKaW50IG1haW4oKSB7CgljaGFyKiBzdHIxID0gIlx4RUZceEJFXHhBRFx4REUiOwoJY2hhciBzdHIyWzVdID0gIlx4RUZceEJFXHhBRFx4REUiOwoJCglUZXN0X3QgczE7CglzMS5pID0gMHhERUFEQkVFRjsKCQoJVGVzdF90IHMyOwoJczIuc1swXSA9ICdceEVGJzsKCXMyLnNbMV0gPSAnXHhCRSc7CglzMi5zWzJdID0gJ1x4QUQnOwoJczIuc1szXSA9ICdceERFJzsKCQoJVGVzdF90IHMzOwoJczMuYVswXSA9IDB4RUY7CglzMy5hWzFdID0gMHhCRTsKCXMzLmFbMl0gPSAweEFEOwoJczMuYVszXSA9IDB4REU7CgkKCXByaW50ZigiJWxkICV1XG4iLCBzaXplb2YoVGVzdF90KSwgczEuaSk7CglwcmludGYoIiVYXG4lWFxuJVhcbiVYXG4lWCIsICpzdHIxLCAqc3RyMiwgczEsIHMyLCBzMyk7CglyZXR1cm4gMDsKfQ==