| Autor |
Mensaje |
|
|
#1 Mon Oct 10, 2005 12:56 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
|
hola, que tal!! ayuda!! me pidieron un programa en java , que tiene que convertir una cantidad decimal a binario. y otro programa que convierte de binario a decimal. alguna idea?. el programa solo acepta numeros de hasta 8 digitos. osea 10101010 o 13444352  alguna sugerencia o pista? por fas !! gracias por todo!!. _______________ aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
|
|
|
#2 Mon Oct 10, 2005 3:12 pm
|
|
Administrador
Registrado: Sep 2005
Mensajes: 97
Localización: Cuautla, Morelos, México.
|
Hi, primero hay una diferencia en decir decimal, ya que cuando uno dice decimal nos referimos a las cantidades que estan despúes del "." ej. 0.454, esa cantidad se puede convertir a binario y viceversa pero requiere un tratamiento diferente para la conversión. Para la conversión de decimal a binario solo es necesario dividir en base "2" y utilizar el residuo, es un procedimiento sencillo que te enseñan en otras materias de lo contrario puedes visitar: http://www.itlp.edu.mx/publica/tutoriales/sistdigitales/En la programación no creo que tengas problemas,  _______________ Comienza ahorrar y adquiere tú sistema de flujo continuo para tú impresora, ya no compres tantos cartuchos, ¿deseas más información?, visita el siguiente link: http://www.dolric.com/content/view/25/1/. « Ultima editación por TuXsOuL en Sun Jan 08, 2006 2:20 am. »
|
|
|
#3 Mon Oct 10, 2005 8:07 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
|
tanks por el link!!!!  trae buena informacion, que se supone que ya sabia(iba en electronica xD pero bueno ya lo cheque y ya recorde  saludos! _______________ aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
|
|
|
#4 Tue Oct 11, 2005 5:22 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 5
Localización: Cuautla, Morelos, México
|
Puedes usar el método parseInt de la clase Integer para convertir de binario o cualquier base (2 a 36) a entero. Sólo debes especificar la base, por ejemplo, para convertir un 5 de binario a entero: int val = Integer.parseInt("101",2); //esto va dentro de una clase, por supuestoEl proceso inverso (de entero a otra base) se hace con el método toString: String val = Integer.toString(5,2); //dentro de tu clase, en el lugar adecuado Saludos!! _______________ Att.: Hasdai « Ultima editación por TuXsOuL en Sun Jan 08, 2006 2:20 am. »
|
|
|
#5 Tue Oct 11, 2005 5:55 pm
|
|
Moderador
Registrado: Sep 2005
Mensajes: 16
|
Hasdai Pacheco escrito Puedes usar el método parseInt de la clase Integer para convertir de binario o cualquier base (2 a 36) a entero. Sólo debes especificar la base, por ejemplo, para convertir un 5 de binario a entero: int val = Integer.parseInt("101",2); //esto va dentro de una clase, por supuestoEl proceso inverso (de entero a otra base) se hace con el método toString: String val = Integer.toString(5,2); //dentro de tu clase, en el lugar adecuado Saludos!!
Creo que esta es la mejor solucion al problema, sin embargo creo que el objetivo de los cursos de programacion es practicar la algoritmia, osea que el mismo haga todo el proceso, una buena practica de programacion es implementar varias soluciones al mismo problema.. _______________ "My possibilities of success become greater with every attempt" « Ultima editación por TuXsOuL en Sun Jan 08, 2006 2:21 am. »
|
|
|
#6 Wed Oct 12, 2005 12:46 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
|
gracias hasdei y spidercat!!!! yo creo que este metodo va a hacer mas facil. aqui esta el "intento" del programa para convertir de Decimal a Binario (sola para 8 digitos). Citar // traer paquetes de java import java.io.*; import javax.swing.*;
public class DecBin1 {
//el metodo main inicia public static void main (String arg[]) throws IOException {
int bin1,bin2,bin3,bin4,bin5,bin6,bin7,bin8 ; int mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8 ; String NumADividir ; NumADividir = JOptionPane.showInputDialog ( "Dame el numero entero a convertir" ) ; int NumADividir1 = Integer.parseInt ( NumADividir ) ; bin1 = NumADividir1 / 2 ; mod1 = NumADividir1 % 2 ; bin2 = bin1 / 2 ; mod2 = bin1 % 2 ; bin3 = bin2 / 2 ; mod3 = bin2 % 2 ; bin4 = bin3 / 2 ; mod4 = bin3 % 2 ; bin5 = bin4 / 2 ; mod5 = bin4 % 2 ; bin6 = bin5 / 2 ; mod6 = bin5 % 2 ; bin7 = bin6 / 2 ; mod7 = bin6 % 2 ; bin8 = bin7 / 2 ; mod8 = bin7 % 2 ; JOptionPane.showMessageDialog( null, "El numero en sistema binario es :" +mod8 +mod7 +mod6 +mod5 +mod4 +mod3 +mod2 +mod1, "Resultados", JOptionPane.PLAIN_MESSAGE ) ; System.exit( 0 ); //terminar aplicacion de la ventana }//fin del metodo main } // fin de la clase suma
xD //bueno si sale para cantidades pequeñas. aqui esta el otro para convertir de Binario a decimal Citar // traer paquetes de java import java.io.*;
public class BinDec {
//el metodo main inicia public static void main (String arg[]) throws IOException { int conv ; int pos0= Integer.parseInt(arg[0]); int pos1= Integer.parseInt(arg[1]); int pos2= Integer.parseInt(arg[2]); int pos3= Integer.parseInt(arg[3]); int pos4= Integer.parseInt(arg[4]); int pos5= Integer.parseInt(arg[5]); int pos6= Integer.parseInt(arg[6]); int pos7= Integer.parseInt(arg[7]); conv = ((128*pos0)+(64*pos1)+(32*pos2)+(16*pos3)+(8*pos4)+(4*pos5)+(2*pos6)+(1*pos7)); System.out.println("El numero binario es: "+"\n"+ pos0+pos1+pos2+pos3+pos4+pos5+pos6+pos7); System.out.println("El numero Decimal es: "+"\n"+ conv); }//fin del metodo main } // fin de la clase suma
tambien igual para 8 digitos. sale ahora lo voy a hacer con lo que me enseñaron ustedes!!1 gracias! _______________ aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
|
|
|
#7 Wed Oct 12, 2005 2:30 pm
|
|
Administrador
Registrado: Sep 2005
Mensajes: 97
Localización: Cuautla, Morelos, México.
|
Es buen el tip que te da hasdai  , pero también esta el detalle que dice spidercatmx, ya que si apenas estas aprendiendo, siempre se aprende por como estan implementadas las funciones  . A tu programa yo le haría unas rápidas modificaciones  , aparte tuve que recordar ciertas cositas con la ayuda de google, ya que java es desconocido para mi con esto te dejo ver que google es muy útil aún para los inexpertos como yo. // traer paquetes de java import java.io.*; import javax.swing.*;
public class decbin { //el metodo main inicia public static void main ( String arg[] ) throws IOException { String NumADividir; String Resultado = ""; int bin[] = new int[100]; int size = 100, posStart = -1; int x = 0, temp;
NumADividir = JOptionPane.showInputDialog ( "Número entero a convertir ? " ) ;
// verifica que la cadena no sea mayor a 8 caracteres if ( NumADividir.length () <= 8 ) { // inicializa vector for ( x = 0; x < size; x++ ) bin[x] = -1;
temp = Integer.parseInt ( NumADividir ) ; bin[0] = temp % 2; // toma los binarios for ( x = 1; x < size; x++ ) { temp /= 2; bin[x] = temp % 2; } // recorta para no tomar los ceros excedentes for ( x = size - 1; x >= 0; x-- ) if ( bin[x] == 1 ) { posStart = x; break; }
// forma la cadena final for ( x = posStart; x >= 0; x-- ) Resultado = Resultado + Integer.toString ( bin[x] ); JOptionPane.showMessageDialog ( null, "Binario: " + Resultado, "Resultados", JOptionPane.PLAIN_MESSAGE ); } else { JOptionPane.showMessageDialog ( null, "La cantidad contiene más de 8 digitos", "Error !!!!", JOptionPane.PLAIN_MESSAGE ); }
System.exit ( 0 ); //terminar aplicacion de la ventana
} //fin del metodo main
} // fin de la clase
Cabe recalcar que no es la mejor manera tal vez, puede ser muy sucia por el hecho de ocupar un array predefinido, además que aún no esta validada la entrada para atrapar una excepción que se genera, eso se puede hacer con try y catch  . Además que se pude hacer una pequeña herencia por ahi, para simplificar cositas. No estaría mal que investigaras lo que falta y lo implementaras, al final pasarnos tu respuesta, y como ganancia creo que habras aprendido mucho mas de java. Por último me gustaría que estudiaras este código si es que te es útil para que vieras el por que de cada cosa, recuerda que puedes hacer pruebas de escritorio  . _______________ Comienza ahorrar y adquiere tú sistema de flujo continuo para tú impresora, ya no compres tantos cartuchos, ¿deseas más información?, visita el siguiente link: http://www.dolric.com/content/view/25/1/.
|
|
|
#8 Wed Oct 12, 2005 8:12 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
|
va!! gracias tuxsoul!!! lo hare!!! por que el codigo que pusiste sale como "mocho" y con unos simbolos diferentes? o esta mal mi explorador? lo que pasa es que no me gustaria que se me pasara algun detalle. bueno de todas maneras gracias a todos! _______________ aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
|
|
|
#9 Wed Oct 12, 2005 11:10 pm
|
|
Administrador
Registrado: Sep 2005
Mensajes: 97
Localización: Cuautla, Morelos, México.
|
Uri3l escrito va!! gracias tuxsoul!!! lo hare!!! por que el codigo que pusiste sale como "mocho" y con unos simbolos diferentes? o esta mal mi explorador? lo que pasa es que no me gustaria que se me pasara algun detalle. bueno de todas maneras gracias a todos!
mmmm,  que extraño, jeje  , ya cheque el código y esta bien, si aún tienes problemas, pero si estas usando internet explorer te sugiero usar mejor el Firefox. Es un mejor navegador, de lo contrario checa la codificación de caracteres, debe estar en ISO8859-1, de lo contrario cambiala, al foro no le afecta que lo veas con una codificación diferente, lo que si afecta es que escribieras (postearas) con una codificación diferente, ya que tus mensajes saldrian mal. saludos  . _______________ Comienza ahorrar y adquiere tú sistema de flujo continuo para tú impresora, ya no compres tantos cartuchos, ¿deseas más información?, visita el siguiente link: http://www.dolric.com/content/view/25/1/.
|
|
|
#10 Thu Oct 13, 2005 3:17 pm
|
|
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
|
ya lo vi!!!! si era por que estaba usando el explorer, gracias a dios que tengo el firefox instalado! sale bytes  _______________ aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
|