public class DecimalParaBinario {
public static String decParaBin(int n) {
// Caso base: se o número for 0 ou 1, retorna o próprio número.
if (n <= 1) {
return Integer.toString(n);
} else {
// Caso recursivo:
// 1. Calcula o resto da divisão por 2 (o bit binário).
// 2. Chama a função recursivamente com o quociente da divisão.
// 3. Concatena o resto à direita do resultado da chamada recursiva.
return decParaBin(n / 2) + (n % 2);
}
}
public static void main(String[] args) {
int numeroDecimal = 14; // Exemplo de número decimal a ser convertido
String binario = decParaBin(numeroDecimal);
System.out.println("O número decimal " + numeroDecimal + " em binário é: " + binario); // Saída: O número decimal 14 em binário é: 1110
}
}
Como funciona ? Recursivo é pilha inverte? Como calcula o resultado é de cima para baixo? Da esquerda para a direita?
Exemplo passo a passo com o número 14:
-
decParaBin(14)chamadecParaBin(7)e espera o resto14 % 2 = 0 -
decParaBin(7)chamadecParaBin(3)e espera o resto7 % 2 = 1 -
decParaBin(3)chamadecParaBin(1)e espera o resto3 % 2 = 1 -
decParaBin(1)retorna “1” (caso base) -
decParaBin(3)recebe “1”, retorna “1” + 1 = “11” -
decParaBin(7)recebe “11”, retorna “11” + 1 = “111” -
decParaBin(14)recebe “111”, retorna “111” + 0 = “1110”
Não entendi podem me explicar
