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.818 ]
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; }
Parte 5 (ORDENANDO NUMEROS) - Sessão de estudo sobre MATRIZES
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Novidades Linux: Kernel 6.17, distros em ebulição e segurança em foco
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Orientação para instalar o Warsaw - módulo de proteção do Banco do Bra... (6)
systemd-resol... precisa ser reiniciado periodicamente (5)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 [RESOLVIDO] (6)
Fedora não reconhece James Donkey 102 Wireless Gaming Mouse (2)