Codeando

feeling the power of bit

Codeando » Java - Consola » un programa para convertir numeros binarios

       


un programa para convertir numeros binarios

Moderadores: spdrct[mx].

Pagina: 1

Autor Mensaje
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 :P 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
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, 8)
_______________
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. »
Miembro
Registrado: Sep 2005
Mensajes: 34
Localización: Kuautla, Morelos
tanks por el link!!!! :P trae buena informacion, que se supone que ya sabia(iba en electronica xD pero bueno ya lo cheque y ya recorde :D
saludos!
_______________
aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L
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 supuesto


El 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. »
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 supuesto


El 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. »
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
Administrador
Registrado: Sep 2005
Mensajes: 97
Localización: Cuautla, Morelos, México.
Es buen el tip que te da hasdai 8), 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 8), 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 8).
_______________
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/.
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
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, :D que extraño, jeje :P, 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 8).
_______________
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/.
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 :P
_______________
aqui tiene que ir mi firma, pero como no dejan poner la imagen, pues solo dejo esto: URi3L

Pagina: 1

Codeando » Java - Consola » un programa para convertir numeros binarios

dolric codeando dolric directorio

Codeando es potenciado por UseBB 1 Software del foro