View Full Version : conversão para binário


Shadowtruth
11-11-2007, 00:32
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)


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

Mr. Brightside
11-11-2007, 01:09
Mais simples que isso:

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

Evil_Tidus
11-11-2007, 01:15
Mais simples que isso:

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

: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?

Mr. Brightside
11-11-2007, 01:16
public class Hexadecimal {
public static void main(String args[]) {
int n;
n = readInt("Número: ");
System.out.println(Integer.toHexString(n));
}
}

Shadowtruth
11-11-2007, 01:24
LOL obrigado... mas eu queria era mesmo saber porque é que o meu programa não funciona ;)

AliFromCairo
11-11-2007, 01:25
Mais simples que isso:

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

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

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)


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

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.

Shadowtruth
11-11-2007, 01:31
tsk tsk... pois... obviamente... muito obrigado... ás vezes uma pessoa fica tanta tempo á frente da mesma coisa que já nem ve o obvio