#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
int decimal;
printf("Digite um número em base decimal: "); int counter = 1;
char *binary = NULL;
while (decimal >= 1) {
int q = decimal / 2;
int r = decimal - (q * 2);
if (binary != NULL) {
memcpy(aux
, binary
, counter
- 1); }
binary = aux;
if (r == 0) binary[counter-1] = '0';
else binary[counter-1] = '1';
counter++;
decimal = q;
}
printf("Resultado em binário = "); for (int i
= counter
- 1; i
>= 0; i
--) printf("%c", binary
[i
]); }
//https://pt.stackoverflow.com/q/58696/101
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKaW50IG1haW4oKSB7CglpbnQgZGVjaW1hbDsKCXByaW50ZigiRGlnaXRlIHVtIG7Dg8K6bWVybyBlbSBiYXNlIGRlY2ltYWw6ICIpOwoJc2NhbmYoIiVkIiwgJmRlY2ltYWwpOwoJaW50IGNvdW50ZXIgPSAxOwoJY2hhciAqYmluYXJ5ID0gTlVMTDsKCXdoaWxlIChkZWNpbWFsID49IDEpIHsKCQlpbnQgcSA9IGRlY2ltYWwgLyAyOwoJCWludCByID0gZGVjaW1hbCAtIChxICogMik7CgkJY2hhciAqYXV4ID0gbWFsbG9jKGNvdW50ZXIpOwoJCWlmIChiaW5hcnkgIT0gTlVMTCkgewoJCQltZW1jcHkoYXV4LCBiaW5hcnksIGNvdW50ZXIgLSAxKTsKCQkJZnJlZShiaW5hcnkpOwoJCX0KCQliaW5hcnkgPSBhdXg7CgkJaWYgKHIgPT0gMCkgYmluYXJ5W2NvdW50ZXItMV0gPSAnMCc7CgkJZWxzZSBiaW5hcnlbY291bnRlci0xXSA9ICcxJzsKCQljb3VudGVyKys7CgkJZGVjaW1hbCA9IHE7Cgl9CglwcmludGYoIlJlc3VsdGFkbyBlbSBiaW7Dg8KhcmlvID0gIik7Cglmb3IgKGludCBpID0gY291bnRlciAtIDE7IGkgPj0gMDsgaS0tKSBwcmludGYoIiVjIiwgYmluYXJ5W2ldKTsKCXByaW50ZigiXG4iKTsKCWZyZWUoYmluYXJ5KTsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvNTg2OTYvMTAx