Converter binário para decimal e números fracionários

0 respostas
M

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"); 
} 

} 
} 
} 
}
Criado 4 de maio de 2006
Respostas 0
Participantes 1