- # include <stdio.h> 
-   
- void decimalParaBinario(int decimal) { 
- 	char aux[1000000]; 
- 	int i, indice = 0; 
-   
- 	// simples conversão de decimal para binário: 
- 	// divida o decimal por 2 enquanto ele for maior que 0, 
- 	// sempre acumulando o resto das divisões, que compõem o número binário final. 
- 	while (decimal > 0) { 
- 		int resto = decimal % 2; 
- 		aux[indice++] = resto + '0'; 
-   
- 		decimal /= 2; 
- 	} 
-   
- 	// o número binário em aux[] está invertido: 12d -->	 0011b. 
- 	// abaixo ele será consertado: 12d --> 0011b --> 1100b. 
- 	for (i = 0; indice > 0; indice--, i++) { 
- 		printf("%c",-  aux [- indice  - 1]);
 
- 	} 
- } 
-   
- void fracaoParaBinario(double fracao) { 
- 	fracao = fracao - (int)fracao; // removendo a parte inteira: 12.25d --> 0.25d 
-   
- 	while (fracao != 0.0) { 
- 		fracao *= 2; 
- 		int resto = (int)fracao; 
- 		fracao -= resto; 
-   
- 	} 
- } 
-   
- void decimalComFracaoParaBinario(double numero) { 
- 	decimalParaBinario((int)numero); 
- 	fracaoParaBinario(numero); 
- } 
-   
- int main() { 
- 	double numero; 
-   
- 	numero = 12.25; 
- 	decimalComFracaoParaBinario(numero); 
-   
- 	numero = 62.62510; 
- 	decimalComFracaoParaBinario(numero); 
-   
- 	return 0; 
- } 
				IyBpbmNsdWRlIDxzdGRpby5oPgoKdm9pZCBkZWNpbWFsUGFyYUJpbmFyaW8oaW50IGRlY2ltYWwpIHsKCWNoYXIgYXV4WzEwMDAwMDBdOwoJaW50IGksIGluZGljZSA9IDA7CgoJLy8gc2ltcGxlcyBjb252ZXJzw6NvIGRlIGRlY2ltYWwgcGFyYSBiaW7DoXJpbzoKCS8vIGRpdmlkYSBvIGRlY2ltYWwgcG9yIDIgZW5xdWFudG8gZWxlIGZvciBtYWlvciBxdWUgMCwKCS8vIHNlbXByZSBhY3VtdWxhbmRvIG8gcmVzdG8gZGFzIGRpdmlzw7VlcywgcXVlIGNvbXDDtWVtIG8gbsO6bWVybyBiaW7DoXJpbyBmaW5hbC4KCXdoaWxlIChkZWNpbWFsID4gMCkgewoJCWludCByZXN0byA9IGRlY2ltYWwgJSAyOwoJCWF1eFtpbmRpY2UrK10gPSByZXN0byArICcwJzsKCgkJZGVjaW1hbCAvPSAyOwoJfQoKCS8vIG8gbsO6bWVybyBiaW7DoXJpbyBlbSBhdXhbXSBlc3TDoSBpbnZlcnRpZG86IDEyZCAtLT4JIDAwMTFiLgoJLy8gYWJhaXhvIGVsZSBzZXLDoSBjb25zZXJ0YWRvOiAxMmQgLS0+IDAwMTFiIC0tPiAxMTAwYi4KCWZvciAoaSA9IDA7IGluZGljZSA+IDA7IGluZGljZS0tLCBpKyspIHsKCQlwcmludGYoIiVjIiwgYXV4W2luZGljZSAtIDFdKTsKCX0KfQoKdm9pZCBmcmFjYW9QYXJhQmluYXJpbyhkb3VibGUgZnJhY2FvKSB7CglmcmFjYW8gPSBmcmFjYW8gLSAoaW50KWZyYWNhbzsgLy8gcmVtb3ZlbmRvIGEgcGFydGUgaW50ZWlyYTogMTIuMjVkIC0tPiAwLjI1ZAoKCXdoaWxlIChmcmFjYW8gIT0gMC4wKSB7CgkJZnJhY2FvICo9IDI7CgkJaW50IHJlc3RvID0gKGludClmcmFjYW87CgkJZnJhY2FvIC09IHJlc3RvOwoKCQlwcmludGYoIiVkIiwgcmVzdG8pOwoJfQp9Cgp2b2lkIGRlY2ltYWxDb21GcmFjYW9QYXJhQmluYXJpbyhkb3VibGUgbnVtZXJvKSB7CglkZWNpbWFsUGFyYUJpbmFyaW8oKGludCludW1lcm8pOwoJcHJpbnRmKCIuIik7CglmcmFjYW9QYXJhQmluYXJpbyhudW1lcm8pOwoJcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbigpIHsKCWRvdWJsZSBudW1lcm87CgoJbnVtZXJvID0gMTIuMjU7CglkZWNpbWFsQ29tRnJhY2FvUGFyYUJpbmFyaW8obnVtZXJvKTsKCgludW1lcm8gPSA2Mi42MjUxMDsKCWRlY2ltYWxDb21GcmFjYW9QYXJhQmluYXJpbyhudW1lcm8pOwoKCXJldHVybiAwOwp9