Decimal a Binario

Por:Blag, enviado 12 ene 2005
Este es un pequeño proyecto que comencé hace algún tiempo. Quería hacer un programa sencillo, pero útil a la vez, y poder mostrarlo en diferentes lenguajes de programación. Hasta el momento, estos son los lenguajes, los cuales se encuentran separados por carpetas, cada una con el nombre del lenguaje a la que pertenecen.

  • PHP
  • PASCAL
  • QBASIC
  • JavaScript
  • C++
  • D++
  • EUPHORIA
  • VB.NET EN CONSOLA
  • C# EN CONSOLA
  • JAVA
  • DELPHI
  • TCL
  • ASP.NET
  • H2O

Aquí una muestra en PHP, C++ y Java, puedes descargar el codigo fuente del resto en el enlace mas abajo.

PHP

Code: Seleccionar todo
  1. <?

  2. $suma=0;$digito=0;$exponente=0;

  3.  

  4. /isset, verifica que la variable tenga algún valor

  5. if(isset($numero))

  6. {

  7.         $suma = 0;

  8.         $exponente = 1;

  9.         do{ //Ejecutar un bloque de código

  10.                 $digito = $numero % 2;

  11.                 //El símbolo %, ejecuta una división entera conservando el residuo

  12.                 $numero = floor($numero / 2);

  13.                 //Floor, redondea un entero a su anterior inmediado (Ej: 7.5 => 7)

  14.                 //El símbolo /, es una división entera sin decimal

  15.                 $suma = $suma + $digito * $exponente;

  16.                 $exponente = $exponente * 10;

  17.         }while($numero > 0);

  18.         //While, define el termino del bloque iniciado por While y

  19.         //además, define la condición que debe de cumplirse

  20.         echo "El numero binario es: $suma";

  21.         //echo, escribe en la pantalla

  22. }

  23. ?>

  24. <html>

  25. <head><title>Prueba</title></head>

  26. <body>

  27. <form action="<?php print $PHP_SELF?>" method="post">

  28.     Ingrese un número decimal: <input type="text" name="numero"><br>

  29.     <input type="submit" value="Evaluar">

  30. </form>

  31. </body>

  32. </html>




C++

Code: Seleccionar todo
  1. #include <iostream> //Para Cout y Cin

  2.  

  3. long int iNumero,iSuma,iDigito,iExponente;

  4. char cRespuesta;

  5. using namespace std;

  6. int main()

  7. {

  8.         do{

  9.                 //Limpiamos la pantalla

  10.                 cout<<"Ingresa un numero decimal: ";

  11.                 //Escribimos en la pantalla

  12.                 cin>>iNumero;

  13.                 //Leemos el valor, ingresado por pantalla

  14.                 iSuma = 0;

  15.                 iExponente = 1;

  16.                         do{

  17.                                 iDigito = iNumero % 2;

  18.                                 //Ejecutamos una divion entera, pero conservamos el residuo

  19.                                 iNumero = iNumero / 2;

  20.                                 //Ejecutamos una division entera

  21.                                 iSuma = iSuma + iDigito * iExponente;

  22.                                 iExponente = iExponente * 10;

  23.                         }while (iNumero > 0);

  24.                         //Definimos el final del bloque de codigo, mientras se

  25.                         //cumpla la condicion

  26.                 cout<<"El numero binario es: "<<iSuma;

  27.                 cout<<" Deseas continuar (s/n)";

  28.                 cin>>cRespuesta;

  29.                 iSuma = 0;

  30.         }

  31.         while(cRespuesta == 's' || cRespuesta == 'S');

  32.  

  33.         //Definimos el final del bloque de codigo, mientras se

  34.         //cumpla la condicion

  35.         //El simbolo ||, significa OR

  36. }



Java

Code: Seleccionar todo
  1. import java.awt.event.*;

  2. import java.awt.*;

  3. import java.applet.*;

  4.  

  5. public class DecToBin extends Applet implements ActionListener{

  6.  

  7.         TextField txtNumero;

  8.         Button btnEjecutar;

  9.         TextArea txtResultado;

  10.  

  11.         public void init()

  12.         {      

  13.                 setLayout(null);

  14.                 //Definimos un espacio vacio para poder

  15.                 //asignar nuestro propio orden a los componentes

  16.        

  17.                 txtNumero=new TextField("");

  18.                 txtNumero.setBounds(20,20,80,20);

  19.                 //SetBounds, determina la posición (X1,Y1,X2,Y2)

  20.                 add(txtNumero);

  21.                 //Agrega el componente a la ventana

  22.        

  23.                 btnEjecutar=new Button("Presioname!");

  24.                 btnEjecutar.addActionListener(this);

  25.                 //Le agregamos a nuestro botón la capacidad de "escuchar"

  26.                 //cuando es presionado

  27.                 btnEjecutar.setBounds(120,20,80,20);

  28.                 add(btnEjecutar);

  29.        

  30.                 txtResultado=new TextArea("");

  31.                 txtResultado.setBounds(20,50,200,60);

  32.                 add(txtResultado);

  33.         }

  34.  

  35.         public void actionPerformed( ActionEvent e )

  36.         {

  37.                 long lNumero,lSuma,lDigito,lExponente;

  38.                        

  39.                 if(e.getSource().equals(btnEjecutar))

  40.                 //Si hemos presionado el botón Ejecutar

  41.                 {

  42.                         lNumero = Long.parseLong(txtNumero.getText());

  43.                         //Convertimos el valor que se encuentra en la caja

  44.                         //de texto en Long

  45.                         lSuma = 0;

  46.                         lExponente = 1;

  47.        

  48.                         do{

  49.                                 //Especifica un bloque de código a ejecutar,

  50.                                 //siempre que se cumpla una condición dada.

  51.                                 lDigito = lNumero % 2;

  52.                                 //El símbolo %, ejecuta una divión entera, pero conservando

  53.                                 //el residuo

  54.                                 lNumero = lNumero / 2;

  55.                                 //El símbolo /, ejecuta una divión entera

  56.                                 lSuma = lSuma + lDigito * lExponente;

  57.                                 lExponente = lExponente * 10;

  58.                         }while (lNumero > 0);

  59.                         //While, define donde termina el bloque de código

  60.                         //definido por Do.

  61.                         //Además, define la condición que debe de cumplirse

  62.        

  63.                         txtResultado.setText("La respuesta es: " + lSuma);

  64.                         //Escribe el resultado en nuestro TextArea

  65.                 }

  66.         }

  67. }



Como es de suponerse, a medida que encuentre lenguajes nuevos, o me familiarice con otros, esta lista irá creciendo.

Todos los código están comentados, puesto que este paquete está orientado a los principiantes en programación. Así quizás, pueden escoger el lenguaje de programación que más les guste o les convenga.

Además, todos están desarrollados en modo consola, porque me parece que en el modo Visual, iban a perder un poco su esencia....Nada como programar al estilo antiguo -;)

Espero que les guste y que les sea útil.


Alvaro Tejada Galindo
Consultor y Programador Freeware
SinglePath games design
Tags: algoritmos

Archivos Adjuntos

Otros Artículos en esta sección

¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro de Programación »