1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

conversão para binário

Discussão em 'Programação' iniciada por Shadowtruth, 10 de Novembro de 2007. (Respostas: 6; Visualizações: 2948)

  1. Shadowtruth

    Shadowtruth Power Member

    tava aqui a brincar um bocado com java e... não sei porque este programa não está a funcionar :sad: alguem me consegue explicar? podia ir procurar por um programa de conversão decimal para binaria mas não é isso que quero.. gostava era de perceber porque é que uma coisa aparentemente tão simples não funciona (deve estar a faltar-me algum conceito dos arrays)


    Código:
    import static pt.ua.prog.WIO.*;
    
    public class binario
    {
      public static void main(String[] args)
      {
        int div, resto, i=0, numero;
        int[] binario;
        
        numero=readInt("Número: ");
        div=numero;
        
        do
        {
          div=div/10;
          i++;
        }while(div!=0);
        
        binario = new int[i];
    
        for(i=0; numero!=0; i++)
        {
          resto=numero%2;
          binario[i]=resto;
          numero=numero/2;
        }
        
        i=0;
        while(binario[i]==0)
          i++;
        
        for(i=i; i!=binario.length; i++)
        {
          writeInt(binario[i]);
        }
      }
    }
     
  2. Mais simples que isso:

    Código:
    public class Binario {
      public static void main(String args[]) {
        int n;
        n = readInt("Número: ");
        System.out.println(Integer.toBinaryString(n));
      }
    }
     
  3. Evil_Tidus

    Evil_Tidus Power Member

    :lol: simplicity at it's finnest
    vou ser sincero não conhecia este código, realmente dá jeito dá

    ja agora tambem não ha para Hexadecimal não?
     
  4. Código:
    public class Hexadecimal {
      public static void main(String args[]) {
        int n;
        n = readInt("Número: ");
        System.out.println(Integer.toHexString(n));
      }
    }
     
  5. Shadowtruth

    Shadowtruth Power Member

    LOL obrigado... mas eu queria era mesmo saber porque é que o meu programa não funciona ;)
     
  6. AliFromCairo

    AliFromCairo Power Member

    A ideia era mesmo ser ele a implementar, mas enfim.

    Assim de repente, o teu código tem alguns problemas. Um dos que me parece mais evidente é o método que tu utilizas para determinar a dimensão do array que vai conter o número em binário. A dimensão do teu array não é simplesmente o número de digitos que o teu número tem. Por exemplo, para o número 20, tu estás a inicializar um array de duas dimensões quando na verdade o número 20 em binário (10100) necessita de mais. Outro dos problemas tem a ver com a forma como estás a "imprimir" o número em binário, pois devias começar pelo fim do array(i.e. i = binario.length - 1).

    Espero que ajude.
     
  7. Shadowtruth

    Shadowtruth Power Member

    tsk tsk... pois... obviamente... muito obrigado... ás vezes uma pessoa fica tanta tempo á frente da mesma coisa que já nem ve o obvio
     

Partilhar esta Página