[AJUDA] Transformar número decimal em binário!

Java

25/05/2013

Preciso de uma ajuda com um exercício que estou fazendo. "Transformar número decimal em binário!" Ele deve usar comandos simples, como meu exemplo, mas ele não está funcionando: import java.util.Scanner; public class binario { public static void main(String[] args) { Scanner input = new Scanner(System.in); int d,x = 0; int[] b = new int[10]; System.out.print("Digite um número: "); d = input.nextInt(); while ( d > 1) { b[x] = d % 2; d = d/2; x++; } for (int cont=b.length-1; cont>=0; cont--) { System.out.print(b[cont]); } } } Alguém pode me ajudar? Tem que seguir os mesmos conceitos simples.
Igor Guilherme

Igor Guilherme

Curtidas 0

Respostas

Luis Floriano

Luis Floriano

25/05/2013

Eu aconselharia a guardar cada resto da divisão em um array, pois no final você ter que imprimir de trás para frente. E o seu laço também está infinito, pois o d não está mudando de valor.
while ( d > 1) 
{ 
  b[x] = d % 2; 
  
  d = d/2;

  x++;
} 


for (int cont=b.length-1; cont>=0; cont--){
    System.out.print(b[cont]);
}

GOSTEI 0
Igor Guilherme

Igor Guilherme

25/05/2013

Tem que usar vetor também! Como ficaria com esse seu código?
GOSTEI 0
Lucas Levi

Lucas Levi

25/05/2013

int decimal = 10;
String binaria = Integer.toBinaryString(decimal);
Isso não serve?
GOSTEI 0
Igor Guilherme

Igor Guilherme

25/05/2013

[quote="xChupaKabrax"]
int decimal = 10;
String binaria = Integer.toBinaryString(decimal);
Isso não serve?
O problema é que tem que ser com códigos simples! Tipo, igual ao que estou fazendo!
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

25/05/2013

Conseguiu criar a rotina?
GOSTEI 0
Igor Guilherme

Igor Guilherme

25/05/2013

Tive o mesmo exercício na faculdade, e fiz da seguinte forma:
package Exercicio12;

import javax.swing.JOptionPane;

public class Principal {
	public static void main(String[] args) {
		//Variável com atribuição
		int numero = Integer.parseInt(JOptionPane.showInputDialog("Informe um número: "));
		//Objeto
		ConverterBinario converter = new ConverterBinario();
		
		JOptionPane.showMessageDialog(null, "Binário: " + converter.binario(numero));
	}
}
package Exercicio12;

public class ConverterBinario {
	public String binario (int decimal) {
		
		//Variáveis Auxiliares
		int numero = decimal;
		String binario= "";
		String binariocontrario = "";
		
		//Condição para conversão 
		while (numero != 0) {
			binario += "" + numero%2;
			numero = numero/2;
			System.out.println(numero);
		}
		
		//Como a leitura do binário de trás para frente apos divisão, aqui faz a inversão.
		for (int i = (binario.length()); i != 0; i--) {
			binariocontrario += "" + binario.charAt(i-1);
		}
		//Retorna binário ao contrário
		return binariocontrario;
	}
}
GOSTEI 0
Igor Guilherme

Igor Guilherme

25/05/2013

Ha alguns dias alguém teve a mesma dúvida, postei um exemplo neste tópico aqui: [url]http://javafree.uol.com.br/topic-890425-Programa-Binario.html[/url]
GOSTEI 0
Igor Guilherme

Igor Guilherme

25/05/2013

[quote="igorfguilherme"][quote="xChupaKabrax"]
int decimal = 10;
String binaria = Integer.toBinaryString(decimal);
Isso não serve?
O problema é que tem que ser com códigos simples! Tipo, igual ao que estou fazendo!
Na verdade o código que nosso amigo [b]xChupaKabrax[/b] postou, é a forma simples. Reescrever algo que já existe é complicar as coisas...
GOSTEI 0
POSTAR