#include <stdio.h>
#define BYTEBIN "%d%d%d%d%d%d%d%d"
#define BYTE2BIN(byte) \
(byte & 0x80 ? 1 : 0), \
(byte & 0x40 ? 1 : 0), \
(byte & 0x20 ? 1 : 0), \
(byte & 0x10 ? 1 : 0), \
(byte & 0x08 ? 1 : 0), \
(byte & 0x04 ? 1 : 0), \
(byte & 0x02 ? 1 : 0), \
(byte & 0x01 ? 1 : 0)
int main(void) {
float fa = 1.0;
unsigned int *ia = (unsigned int*)&fa;
unsigned char *ba = (unsigned char*)&fa;
printf("float %f in binary: "BYTEBIN
" "BYTEBIN
" "BYTEBIN
" "BYTEBIN
"\n", fa, BYTE2BIN(ba[3]), BYTE2BIN(ba[2]), BYTE2BIN(ba[1]), BYTE2BIN(ba[0]));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIEJZVEVCSU4gIiVkJWQlZCVkJWQlZCVkJWQiCiNkZWZpbmUgQllURTJCSU4oYnl0ZSkgIFwKICAoYnl0ZSAmIDB4ODAgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4NDAgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MjAgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MTAgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MDggPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MDQgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MDIgPyAxIDogMCksIFwKICAoYnl0ZSAmIDB4MDEgPyAxIDogMCkgCgppbnQgbWFpbih2b2lkKSB7CglmbG9hdCBmYSA9IDEuMDsKCQoJdW5zaWduZWQgaW50ICppYSA9ICh1bnNpZ25lZCBpbnQqKSZmYTsKCXVuc2lnbmVkIGNoYXIgKmJhID0gKHVuc2lnbmVkIGNoYXIqKSZmYTsKCXByaW50ZigiZmxvYXQgJWYgaW4gYmluYXJ5OiAiQllURUJJTiIgIkJZVEVCSU4iICJCWVRFQklOIiAiQllURUJJTiJcbiIsCgkgIGZhLCBCWVRFMkJJTihiYVszXSksIEJZVEUyQklOKGJhWzJdKSwgQllURTJCSU4oYmFbMV0pLCBCWVRFMkJJTihiYVswXSkpOwoJICAKCXJldHVybiAwOwp9Cg==