Página Inicial do Fórum > Java Avançado

Conversão de bin fracionário para dec e vice versa... Help !



Criar novo tópico   Responder tópico


  1. mabertoni
    Posts:18


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


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

    }
    }
    }
    }



  1. TriTonE
    Posts:1576


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Qual é a sua dúvida?? Você realmente espera que alguém aqui te dará o negócio pronto e funcionando?

    Vai tentando aí... qualquer problema você pergunta!

    []'s
    _________________
    Daniel F. Martins



  1. mabertoni
    Posts:18


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


    Está praticamente pronto se voce puder ajudar blz, se não puder não atrapalhe OK...

    Abraço.



  1. TriTonE
    Posts:1576


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    mabertoni

    Está praticamente pronto se voce puder ajudar blz, se não puder não atrapalhe OK...

    Abraço.



    Na boa cara.. vc taca o código aí tudo zuado, sem formatação.. não dá vontade nem de ler. Clicar no botãozinho "Code" lá em cima já ajuda bastante.

    Desculpa se parece cuzisse da minha parte, mas não é.. Tipo, você fala que tá com problemas, mas não fala o problema (tá trazendo o número errado, dá exceção durante conversão, etc)... não é assim não, cara.

    Ou vc. detalha melhor o seu problema ou sei lá se alguém vai ter saco pra ler esse código aí e adivinhar qual é o problema que você tem.

    Flw.
    _________________
    Daniel F. Martins



  1. mabertoni
    Posts:18


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


    Não é isso cara,

    Realmente não estou com problemas o meu código ele compila normalmente, converto de binário para decimal e vice versa mas apenas quando tento converter fracionários tipo 111.11 entendeu, se coloco( , ) ou ( . )dá pau acredito que nao seja este o caminho entendeu...
    Tente rodar e verá

    Triton valeu pela ajuda.

    Má.



  1. lap_junior
    Posts:916


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Vc está tendo este problema por estar convertendo o numero digitado para int



    se vc quer tratar número com casas decimais não pode convertê-los diretamente para int pois estara perdendo precisão, já que as casas decimais serão descartadas.

    flw
    _________________
    JavaFree.org
    Blog



  1. mabertoni
    Posts:18


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


    Cara,

    O que tenho que mudar neste programa, pois já tentei de tudo e agora estou mto confuso... vc pode ajudar?

    Abraço.

    Marcel.



  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Avançado