[AJUDA] Transformar número decimal em binário!
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
Curtidas 0
Respostas
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
25/05/2013
Tem que usar vetor também! Como ficaria com esse seu código?
GOSTEI 0
Lucas Levi
25/05/2013
int decimal = 10; String binaria = Integer.toBinaryString(decimal);
GOSTEI 0
Igor Guilherme
25/05/2013
[quote="xChupaKabrax"]
Isso não serve?
O problema é que tem que ser com códigos simples! Tipo, igual ao que estou fazendo!
int decimal = 10; String binaria = Integer.toBinaryString(decimal);
GOSTEI 0
Okabe Rintarou
25/05/2013
Conseguiu criar a rotina?
GOSTEI 0
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
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
25/05/2013
[quote="igorfguilherme"][quote="xChupaKabrax"]
Isso não serve?
O problema é que tem que ser com códigos simples! Tipo, igual ao que estou fazendo! int decimal = 10; String binaria = Integer.toBinaryString(decimal);
GOSTEI 0