#include <stdio.h>
void printBits(size_t const size, void const * const ptr)
{
unsigned char *b = (unsigned char*) ptr;
unsigned char byte;
int i, j;
for (i=size-1;i>=0;i--)
{
for (j=7;j>=0;j--)
{
byte = b[i] & (1<<j);
byte >>= j;
}
}
}
int main(int argv, char* argc[])
{
int i = 23;
unsigned int ui = 45;
float f = 23.45f;
printBits(sizeof(i), &i);
printBits(sizeof(ui), &ui);
printBits(sizeof(f), &f);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgcHJpbnRCaXRzKHNpemVfdCBjb25zdCBzaXplLCB2b2lkIGNvbnN0ICogY29uc3QgcHRyKQp7CiAgICB1bnNpZ25lZCBjaGFyICpiID0gKHVuc2lnbmVkIGNoYXIqKSBwdHI7CiAgICB1bnNpZ25lZCBjaGFyIGJ5dGU7CiAgICBpbnQgaSwgajsKCiAgICBmb3IgKGk9c2l6ZS0xO2k+PTA7aS0tKQogICAgewogICAgICAgIGZvciAoaj03O2o+PTA7ai0tKQogICAgICAgIHsKICAgICAgICAgICAgYnl0ZSA9IGJbaV0gJiAoMTw8aik7CiAgICAgICAgICAgIGJ5dGUgPj49IGo7CiAgICAgICAgICAgIHByaW50ZigiJXUiLCBieXRlKTsKICAgICAgICB9CiAgICB9CiAgICBwdXRzKCIiKTsKfQoKaW50IG1haW4oaW50IGFyZ3YsIGNoYXIqIGFyZ2NbXSkKewogICAgICAgIGludCBpID0gMjM7CiAgICAgICAgdW5zaWduZWQgaW50IHVpID0gNDU7CiAgICAgICAgZmxvYXQgZiA9IDIzLjQ1ZjsKICAgICAgICBwcmludEJpdHMoc2l6ZW9mKGkpLCAmaSk7CiAgICAgICAgcHJpbnRCaXRzKHNpemVvZih1aSksICZ1aSk7CiAgICAgICAgcHJpbnRCaXRzKHNpemVvZihmKSwgJmYpOwogICAgICAgIHJldHVybiAwOwp9Cg==