#include <stdio.h>
#include <assert.h>
int main()
{
// These are their sizes here. So just to prove it.
// Little endian
union {
short s;
char c[2];
} endian;
endian.s = 0x00FF; // would be stored as FF 00 on little
assert((char)endian.
c[0] == (char)0xFF); assert((char)endian.
c[1] == (char)0x00);
union {
float f;
unsigned char c[4];
} var;
var.f = 0.0003401360590942204;
printf("%x %x %x %x\n", var.
c[3], var.
c[2], var.
c[1], var.
c[0]); // little endian return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KCmludCBtYWluKCkKewogICAgLy8gVGhlc2UgYXJlIHRoZWlyIHNpemVzIGhlcmUuIFNvIGp1c3QgdG8gcHJvdmUgaXQuCiAgICBhc3NlcnQoc2l6ZW9mKGNoYXIpID09IDEpOwogICAgYXNzZXJ0KHNpemVvZihzaG9ydCkgPT0gMik7CiAgICBhc3NlcnQoc2l6ZW9mKGZsb2F0KSA9PSA0KTsKICAgIAogICAgLy8gTGl0dGxlIGVuZGlhbgogICAgdW5pb24gewogICAgICAgIHNob3J0IHM7CiAgICAgICAgY2hhciBjWzJdOwogICAgfSBlbmRpYW47CiAgICBlbmRpYW4ucyA9IDB4MDBGRjsgLy8gd291bGQgYmUgc3RvcmVkIGFzIEZGIDAwIG9uIGxpdHRsZQogICAgYXNzZXJ0KChjaGFyKWVuZGlhbi5jWzBdID09IChjaGFyKTB4RkYpOwogICAgYXNzZXJ0KChjaGFyKWVuZGlhbi5jWzFdID09IChjaGFyKTB4MDApOwogICAgCiAgICB1bmlvbiB7CiAgICAgICAgZmxvYXQgZjsKICAgICAgICB1bnNpZ25lZCBjaGFyIGNbNF07CiAgICB9IHZhcjsKICAgIHZhci5mID0gMC4wMDAzNDAxMzYwNTkwOTQyMjA0OwogICAgcHJpbnRmKCIleCAleCAleCAleFxuIiwgdmFyLmNbM10sIHZhci5jWzJdLCB2YXIuY1sxXSwgdmFyLmNbMF0pOyAvLyBsaXR0bGUgZW5kaWFuCiAgICByZXR1cm4gMDsKfQ==