Fórum Conversão de número de decimal para binário e vice-versa #566330
09/04/2009
Pessoal,
Me ajudem,
Preciso fazer um programa em Java que converta número de decimal para binário e vice-versa.
Apenas comecei o Exe, mas na hora da regra ferrou tudo....
_____________________________________________________________
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base,qtde;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num+"? (2 ou 10)"));
if((base==2)||(base==10))
{
JOptionPane.showMessageDialog(null,"O número"+num+"(2)="+base+"(10)");
}
else
{
JOptionPane.showMessageDialog(null,+base+ "Não é uma base compatível");
}
}
} [/u]
Posts
09/04/2009
Alexandre Viriato
[quote="mabertoni"]Pessoal,
Me ajudem,
Preciso fazer um programa em Java que converta número de decimal para binário e vice-versa.
Apenas comecei o Exe, mas na hora da regra ferrou tudo....
_____________________________________________________________
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base,qtde;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num+"? (2 ou 10)"));
if((base==2)||(base==10))
{
JOptionPane.showMessageDialog(null,"O número"+num+"(2)="+base+"(10)");
}
else
{
JOptionPane.showMessageDialog(null,+base+ "Não é uma base compatível");
}
}
} [/u]
decimal para binário
int valor = 2;
String bin = Integer.toString(valor, 2);
System.out.println("valor: " + valor);
System.out.println("bin..: " + bin);
binário para decimal
String valor = "1001";
int bin = Integer.parseInt(valor, 2);
System.out.println("valor: " + valor);
System.out.println("bin..: " + bin);
Cara,
Mas como coloco no meu programa esta String, voce pode me mostrar?
Valew.
Abraço.
09/04/2009
Daniel Martins
É só colar o código lá dentro :mrgreen:
Daniel,
Cara, colei mas nao rodou, mudei as variáveis(nomes) e colei, nao rodou, voce pode me mostrar como.
Tente compilar e verá.
Abraço.
assim funciona?
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base,qtde;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num.toString()+"? (2 ou 10)"));
if(base==2)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(2) na base (10) é " + bin);
}
else
{
if(base == 10)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(10) na base (2) é " + Integer.parseInt(num, 2).toString());
}
else
{
JOptionPane.showMessageDialog(null,+base.toString()+ "Não é uma base compatível");
}
}
}
}
09/04/2009
Daniel Martins
Hmmm...
Então cole a mensagem de erro que deu.. fica mais fácil de saber o que fazer para resolvê-lo :P
falou!
Pessoal,
Á detalhe, este programa tenho que rodar qts vezes quiser, tipo assim digite o número, escolha 2 ou 10, enquanto não apertar cancel, ele vai ficar pedindo para digitar, no final pede pra printar na tela, entendeu?
Segue o exercício e os erros abaixo:
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base,qtde;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num.toString()+"? (2 ou 10)"));
if(base==2)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(2) na base (10) é " + bin);
}
else
{
if(base == 10)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(10) na base (2) é " + Integer.parseInt(num, 2).toString());
}
else
{
JOptionPane.showMessageDialog(null,+base.toString()+ "Não é uma base compatível");
}
}
}
}
[b] Segue o erro abaixo:[/b]
C:\Documents and Settings\a395070\Desktop\Arley_exe1.java:14: int cannot be dereferenced
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num.toString()+"? (2 ou 10)"));
^
C:\Documents and Settings\a395070\Desktop\Arley_exe1.java:20: int cannot be dereferenced
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(2) na base (10) é " + bin);
^
C:\Documents and Settings\a395070\Desktop\Arley_exe1.java:27: int cannot be dereferenced
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(10) na base (2) é " + Integer.parseInt(num, 2).toString());
^
C:\Documents and Settings\a395070\Desktop\Arley_exe1.java:27: cannot resolve symbol
symbol : method parseInt (int,int)
location: class java.lang.Integer
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(10) na base (2) é " + Integer.parseInt(num, 2).toString());
^
C:\Documents and Settings\a395070\Desktop\Arley_exe1.java:31: int cannot be dereferenced
JOptionPane.showMessageDialog(null,+base.toString()+ "Não é uma base compatível");
^
5 errors
Process completed.
09/04/2009
Adriano Baptista
Aproveitando uma dúvida que tem haver um pouco com o topico
Como eu poderia fazer para converter uma string em numeros inteiros?
Mas verificando se a pessoa inseriu somente numeros, caso tenha inserido algo diferente de numeros, retornar a mensagem para ela inserir um numero válido sem o programa apresentar erro.
O codigo acima nao tem essa checagem, se a pessoa inserir abc o programa vai dar pau...
import javax.swing.JOptionPane;
public class Teste{
public static void main(String args[]){
String input = "";
int number = 0;
boolean continuar = true;
while( continuar ){
input = JOptionPane.showInputDialog(null,"Digite um numero inteiro: ");
try{
number = Integer.parseInt(input);
JOptionPane.showMessageDialog( null, "Voce digitou o numero: " + number );
continuar = false;
}
catch( NumberFormatException e ) {}
}
}
}
import javax.swing.JOptionPane;
public class Teste{
public static void main(String args[]){
String input = "";
int number = 0;
boolean continuar = true;
while( continuar ){
input = JOptionPane.showInputDialog(null,"Digite um numero inteiro: ");
try{
number = Integer.parseInt(input);
JOptionPane.showMessageDialog( null, "Voce digitou o numero: " + number );
continuar = false;
}
catch( NumberFormatException e ) {}
}
}
}
Não fugindo do assunto está embaçado pra fazer, só sei que tenho que usar a funcao Charat,e o Matchpow. putz nem sei onde começar...
Valew pelas dicas...
Se alguém conseguir me ajudar me fale.
Abraços.
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base,qtde;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num.toString()+"? (2 ou 10)"));
if(base==2)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(2) na base (10) é " + bin);
}
else
{
if(base == 10)
{
String bin = Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número"+num.toString()+"(10) na base (2) é " + Integer.parseInt(num, 2).toString());
}
else
{
JOptionPane.showMessageDialog(null,+base.toString()+ "Não é uma base compatível");
}
}
}
}
HELP ME,
Estou quase lá olhem o exe abaixo: de decimal para binário está OK, apenas de binário pra decimal que está dando erro.
Segue o exe abaixo:
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int num,base;
num = Integer.parseInt(JOptionPane.showInputDialog("Entre com o número a ser convertido:"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número"+num+"? (2 ou 10)"));
if(base==2)
{
String bin=Integer.toString(num, 2);
JOptionPane.showMessageDialog(null,"O número " +num+ "(10) na base(2)é ? " +bin);
}
else
{
if(base == 10)
{
String bin =Integer.toString(num, 1001);
JOptionPane.showMessageDialog(null,"O número"+num+"(2) na base (10) é "+bin);
}
else
{
JOptionPane.showMessageDialog(null,+base+ "Não é uma base compatível");
}
}
}
}
Me ajudem ...
Valew.
Marcel.
Seguinte, olhe o primeiro post que voce achará o seu erro.
Para passar de decimal para binário voce usa:
int valor = 2;
String bin = Integer.toString(valor, 2);
Nesse caso, voce passa valor como um inteiro e usa a variavel bin como String para armazenar o resultado de Integer.toString(valor,2)
e de binario para decimal:
String valor = "1001";
int bin = Integer.parseInt(valor, 2);
Agora, é o oposto. Voce passa o valor como sendo um String e usa a variavel bin como inteiro para armazenar o resultado de Integer.parseInt(valor,2)
Ai vai o código:
import javax.swing.*;
public class Teste{
public static void main (String Args[]){
int num,base;
num = Integer.parseInt( JOptionPane.showInputDialog( "Entre com o número a ser convertido:" ) );
base = Integer.parseInt( JOptionPane.showInputDialog( "Qual é a base do número"+num+"? (2 ou 10)" ) );
if(base==2){
num += ""; // mudando para String.
int bin = Integer.parseInt( num, 2 );
JOptionPane.showMessageDialog( null, "O número " + num + "(10) na base(2)é ? " + bin );
}
else{
if(base == 10){
String bin = Integer.toString( num, 10 );
JOptionPane.showMessageDialog( null , "O número" + num + "(2) na base (10) é " + bin );
}
else{
JOptionPane.showMessageDialog( null , base + " Não é uma base compatível" );
}
}
}
}
Aqui funcionou.
Segue os erros abaixo:
Na conversão de decimal para binário está OK, o problema é quando voce tenta converter de binário para decimal....
Segue os erros do arquivo que voce enviou...
C:\Arquivos de programas\Xinox Software\JCreator LE\MyProjects\Teste\Teste.java:13: inconvertible types
found : java.lang.String
required: int
num += ""; // mudando para String.
^
C:\Arquivos de programas\Xinox Software\JCreator LE\MyProjects\Teste\Teste.java:14: cannot resolve symbol
symbol : method parseInt (int,int)
location: class java.lang.Integer
int bin = Integer.parseInt( num, 2 );
^
2 errors
Process completed.
Realmente eu bobiei na concatenação, dessa vez concatei na hora de passar o valor para o método.
import javax.swing.*;
public class Teste{
public static void main (String Args[]){
int num,base;
num = Integer.parseInt( JOptionPane.showInputDialog( "Entre com o número a ser convertido:" ) );
base = Integer.parseInt( JOptionPane.showInputDialog( "Qual é a base do número"+num+"? (2 ou 10)" ) );
if(base==2){
int bin = Integer.parseInt( num + "", 2 );
JOptionPane.showMessageDialog( null, "O número " + num + "(10) na base(2)é ? " + bin );
}
else{
if(base == 10){
String bin = Integer.toString( num, 10 );
JOptionPane.showMessageDialog( null , "O número" + num + "(2) na base (10) é " + bin );
}
else{
JOptionPane.showMessageDialog( null , base + " Não é uma base compatível" );
}
}
}
}