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