Pessoal,
Estou com uma encrenca na mão, preciso converter números binários para decimal e vice versa, e o programa tem que converter números fracionários, aí que está o problema estou mandando o exe abaixo: veem se podem me ajudar…
import javax.swing.*;
public class Arley_exe1
{
public static void main (String Args[])
{
int base,num,tamanho,acum,cont,loop,valor ;
String binario;
double acum2,val_dec;
binario = "";
cont=0;
acum=0;
acum2=0;
tamanho = 0;
val_dec=0;
base = 2;
while ((base==0) || (base==2)|| (base==10))
{
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,base + " não é uma base compatível");
}
else
{
if (base ==10) //Converte os números Decimais para binários.
{
valor = num;
binario = "";
while((valor/2)>=1)
{
acum = valor%2;
binario = acum + binario;
valor = valor / 2;
if (valor == 1)
{
binario = "1" + binario;
}
}
System.out.println("O numero " + num + " base(" + base + ")" + " Em Binario e - " + binario + "\n");
//Printa na tela e pula uma linha (null,"O número convertido em binário é " + binario \n);
}
else
{
// resolve os números binários.
String bin2 = String.valueOf(num);
tamanho = bin2.length();
loop=0;
acum2 = 0;
while (cont!=tamanho)
{
tamanho--;
int x = Integer.parseInt("" + bin2.charAt(tamanho));
val_dec = x * (Math.pow(2,loop));
acum2 = acum2 + val_dec;
loop++;
}
//Printa na tela e pula uma linha fazendo o loop(null,"O valor em decimal é de " + acum2);
System.out.println("O numero " + num + " base(" + base + ")" + " Em Decimal e - " + acum2 + "\n");
}
}
}
}
}