🟢 Problema: Elabore um programa em Java que receba um número inteiro decimal e o converta para binário.
🟢 Algoritmo…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import java.util.Scanner; public class DecimalParaBinario { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Digite um número inteiro decimal: "); int decimal = scanner.nextInt(); String binario = converterParaBinario(decimal); System.out.println("O número em binário é: " + binario); } public static String converterParaBinario(int decimal) { if (decimal == 0) { return "0"; } StringBuilder binario = new StringBuilder(); while (decimal > 0) { int resto = decimal % 2; binario.insert(0, resto); decimal = decimal / 2; } return binario.toString(); } } |
—
🟢 No trecho de código binario.insert(0, resto);
, binario
é um objeto do tipo StringBuilder
que estamos usando para construir a representação binária do número decimal. O método insert
da classe StringBuilder
é utilizado para inserir um caractere ou uma sequência de caracteres em uma determinada posição dentro do StringBuilder
.
No caso específico, estamos inserindo o valor do resto
na posição 0 do StringBuilder
. O resto
representa o dígito binário calculado a partir da divisão do número decimal por 2 naquela iteração do laço de repetição.
Ao utilizar binario.insert(0, resto)
, estamos inserindo o resto
no início do StringBuilder
, o que resulta em uma inversão da ordem dos dígitos binários. Essa inversão ocorre porque estamos adicionando o dígito mais significativo (obtido no final da divisão) no começo do StringBuilder
.
Por exemplo, se o resto
for 1, ele será inserido na posição 0, empurrando os dígitos existentes para a direita. Isso ocorre sucessivamente a cada iteração do laço, até que todos os dígitos binários sejam calculados e inseridos corretamente.
Após a finalização do laço de repetição, a sequência de dígitos binários estará completa e pronta para ser retornada como uma String
através do método toString()
do StringBuilder
.
—
*Atualizado em 18 de junho de 2023
🐍 Em Python: