Por favor ajudem É urgente!

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

		}
	}
}

}