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.940 ]
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;
}
Equação do segundo grau em C++
pegavalor.c - Interação com usuário
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
Midia de instalação LM-21.3 não inicializa (7)
A diferença entre a fala de um Samuel e a fala de alguém que conhece o... (8)









