#include <stdio.h>
#include <stdlib.h>
typedef char byte;
byte* floatToByteArray(double f) {
byte
* ret
= malloc(8 * sizeof(byte
)); unsigned int asInt = *((int*)&f);
int i;
for (i = 0; i < 8; i++) {
ret[i] = (asInt >> 16 * i) & 0xFF;
}
return ret;
}
int main(void) {
double f = 1.0;
byte* asBytes = floatToByteArray(f);
int i;
for(i = 0; i < 4; i++) {
printf("Byte #%i: %i\n", i
, asBytes
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgY2hhciBieXRlOwoKYnl0ZSogZmxvYXRUb0J5dGVBcnJheShkb3VibGUgZikgewoJYnl0ZSogcmV0ID0gbWFsbG9jKDggKiBzaXplb2YoYnl0ZSkpOwoJdW5zaWduZWQgaW50IGFzSW50ID0gKigoaW50KikmZik7CgkKCWludCBpOwoJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewoJCXJldFtpXSA9IChhc0ludCA+PiAxNiAqIGkpICYgMHhGRjsKCX0KCQoJcmV0dXJuIHJldDsKfQoJCgppbnQgbWFpbih2b2lkKSB7Cglkb3VibGUgZiA9IDEuMDsKCQoJYnl0ZSogYXNCeXRlcyA9IGZsb2F0VG9CeXRlQXJyYXkoZik7CgkKCWludCBpOwoJZm9yKGkgPSAwOyBpIDwgNDsgaSsrKSB7CgkJcHJpbnRmKCJCeXRlICMlaTogJWlcbiIsIGksIGFzQnl0ZXNbaV0pOwoJfQoJCglyZXR1cm4gMDsKfQo=