Znalazłem na stacku ciekawą funkcję do reprezentacji zmiennych w C. Za nic w świecie nie mogę pojąć logiki co się dzieje na każdej lini kodu. Mógłby mi ktoś pomóc? Znam podstawy wskaźników ale tutaj kompletnie nie rozumiem ich zastosowania.
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] >> j) & 1;
printf("%u", byte);
}
}
puts("");
}
int main(int argv, char* argc[])
{
int i = 23;
printBits(sizeof(i), &i);
return 0;
}