Função para escrita de um número em notação binária através de recursão
Publicado por Perfil removido (última atualização em 17/04/2012)
[ Hits: 5.746 ]
Este programa traz um função recursiva que escreve na tela em base 2 (base binária) um número fornecido previamente.
No programa ela é usada em teste para os números de 1 a 100.
Ele adentra em si mesmo até encontrar o caso-limite, que é a chamada para zero.
Depois ele retorna das chamadas escrevendo o que foi encontrado. Deste modo ele não imprime o número ao contrário.
Há um tratamento de exceção no início através de uma variável estática interna à função usada como "flag".
Ela sinaliza se o zero encontrado foi fornecida na primeira chamada ou se é um caso final onde o número foi inteiramente dividido.
Se for um caso inicial, ele imprime este zero. Senão ele retorna das chamadas.
Isso permite que nos outros casos não sejam escritos zeros no início dos números.
Como sempre, aguardo por bugs.
#include <stdio.h> #define LIMITE 100 void bin (int n) { static int flag=0; if (!n) { if (!flag) putc('0', stdout); else flag=0; return; } flag=1; bin(n>>1); putc('0'+(n&1), stdout); return; } int main (void) { int i; for (i=0; i<=LIMITE; i++) { printf ("%d\t",i); bin (i); putc('\n', stdout); } return 0; }
clean.h - Biblioteca para limpar um determinado espaço no terminal
[C++] remover todos os multiplos de 3
Inserir e remover caracter da matriz
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Como Instalar o Microsoft Teams no Linux Ubuntu
Copia e Cola no SED --> Processador de textos (8)
Ferramentas e métodos de criação de binários estáticos (0)
Alguém pode me explicar essa matemática? [RESOLVIDO] (6)