#include <stdio.h>
#include <stdlib.h>
#include <math.h>
size_t bits_needed(int n)
{
return floor(log2
(n
) + 1); }
char *to_binary_string(int n)
{
size_t num_elements = bits_needed(n) + 1;
char *bit_chars
= malloc(num_elements
);
bit_chars[num_elements - 1] = '\0';
while (--num_elements) {
int quotient = n / 2, remainder = n % 2;
printf("%d / 2 = %d, %d %% 2 = %d\n", n
, quotient
, n
, remainder
); bit_chars[num_elements - 1] = remainder == 1 ? '1' : '0';
n = quotient;
}
return bit_chars;
}
int main()
{
int a = 99, b = 131;
//puts(to_binary_string(a));
//puts(to_binary_string(b));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1hdGguaD4KCnNpemVfdCBiaXRzX25lZWRlZChpbnQgbikKewoJcmV0dXJuIGZsb29yKGxvZzIobikgKyAxKTsKfQoKY2hhciAqdG9fYmluYXJ5X3N0cmluZyhpbnQgbikgCnsKCXNpemVfdCBudW1fZWxlbWVudHMgPSBiaXRzX25lZWRlZChuKSArIDE7CgljaGFyICpiaXRfY2hhcnMgPSBtYWxsb2MobnVtX2VsZW1lbnRzKTsKCQoJYml0X2NoYXJzW251bV9lbGVtZW50cyAtIDFdID0gJ1wwJzsKCQoJd2hpbGUgKC0tbnVtX2VsZW1lbnRzKSB7CgkJaW50IHF1b3RpZW50ID0gbiAvIDIsIHJlbWFpbmRlciA9IG4gJSAyOwoJCXByaW50ZigiJWQgLyAyID0gJWQsICVkICUlIDIgPSAlZFxuIiwgbiwgcXVvdGllbnQsIG4sIHJlbWFpbmRlcik7CgkJYml0X2NoYXJzW251bV9lbGVtZW50cyAtIDFdID0gcmVtYWluZGVyID09IDEgPyAnMScgOiAnMCc7CgkJbiA9IHF1b3RpZW50OwoJfQoJCglyZXR1cm4gYml0X2NoYXJzOwp9CgppbnQgbWFpbigpIAp7CgkKCWludCBhID0gOTksIGIgPSAxMzE7CgkKCS8vcHV0cyh0b19iaW5hcnlfc3RyaW5nKGEpKTsKCS8vcHV0cyh0b19iaW5hcnlfc3RyaW5nKGIpKTsKCQoJcHJpbnRmKCIlZCAlLjBmIiwgMTYgPj4gNCk7CgkKCXJldHVybiAwOwp9Cg==