Pessoal,
Preciso fazer um programa que converta números decimais fracionários para binário e vice versa, o programa que fiz abaixo nao esta fazendo esta função, gostaria da ajuda de voces.
import javax.swing.*;
public class ExercicioArley
{
public static void main (String args[])
{
int base,numero,tamanho,acum,contador,loop,valor;
String binario;
double acum2,valor_decimal;
binario = "";
contador=0;
acum=0;
acum2=0;
tamanho = 0;
valor_decimal=0;
base = 2;
while ((base==0) || (base==2)|| (base==10))
{
numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero a ser convertido"));
base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número " + numero + " (2 ou 10)"));
if ((base!=2) && (base!=10))
{
JOptionPane.showMessageDialog(null,base + " não é uma base compatível");
}
else
{
if (base ==10)
// resolve os números decimais.
{
valor = numero;
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 " + numero + " base(" + base + ")" + " - " + binario + "\n");
//JOptionPane.showMessageDialog(null,"O número convertido em binário é " + binario);
}
else
{
// resolve os números binários.
String bin2 = String.valueOf(numero);
tamanho = bin2.length();
loop=0;
acum2 = 0;
while (contador!=tamanho)
{
tamanho--;
int x = Integer.parseInt("" + bin2.charAt(tamanho));
valor_decimal = x * (Math.pow(2,loop));
acum2 = acum2 + valor_decimal;
loop++;
}
//JOptionPane.showMessageDialog(null,"O valor em decimal é de " + acum2);
System.out.println("O numero " + numero + " base(" + base + ")" + " - " + acum2 + "\n");
}
}
}
}
}