sábado, 30 de marzo de 2013

Conversión de decimal a binario y de binario a decimal (Consola c#)

Aquí les muestro como convertir un número entero o decimal a binario y de binario a decimal en Consola c#.

Primero comenzamos con el método de conversión:


public static int atoi(string strNum)
{
    return int.Parse(strNum);
}
        
private static int Search(char c)
{
    string Num = "01";
    int i = 0;
    for (i = 0; i < 2; i++)
    {
         if (Num[i] == c)
             break;
    }
    return i;
}
        
public static int Bin2Dec(string Cad)
{
    int i, iLenght;
    int iResult = 0;
    iLenght = Cad.Length;
    iLenght--;
    for (i = 0; i < Cad.Length; i++, iLenght--)
    {
         iResult += (Search(Cad[i]) * (int)Math.Pow(2, iLenght));
    }
    return iResult;
}

public static string Dec2Bin(int iNum)
{
    string strNum = "";
    int i;
    int iMask = 1 << 7;
    for (i = 1; i <= 8; i++)
    {
         if ((iNum & iMask) != 0)
             strNum += "1";
         else
             strNum += "0";
         iNum <<= 1;
     }
     return strNum;
}

Después continuaremos con el método del Menú de selección:


public static int Menu()
{
     int iOpc;
     string strOpc;
     Console.Write("\n\n1.- Decimal a Binario.");
     Console.Write("\n2.- Binario a Decimal.");
     Console.Write("\n3.- Salir");
     Console.Write("\nEscoje tu opcion: ");
     strOpc = Console.ReadLine();
     iOpc = atoi(strOpc);
     return iOpc;
}

Ya de haber terminado con los métodos, comenzaremos a crear el programa en el "main":


static void Main(string[] args)
{
     string Num;
     int iOpc;
     Console.WriteLine("\nPrograma que convierte de Decimal a  Binario y Binario a Decimal");
     iOpc = Menu();
     while (iOpc != 3)
     {
         switch (iOpc)
         {
             case 1:
                 Console.Out.Write("\nEscribe un numero : ");
                 Num = Console.ReadLine();
                 Console.Write("El numero en binario es: " + Dec2Bin(atoi(Num)));
                 Console.WriteLine();
                 break;
             case 2:
                 Console.Out.Write("\nEscribe un numero en binario: ");
                 Num = Console.ReadLine();
                 Console.Write("El numero en decimal es: " + Bin2Dec(Num));
                 Console.WriteLine();
                 break;
             case 3: break;
             default: Console.Write("\nOpcion incorrecta.");
             break;
         }
         iOpc = Menu();
     }
     Console.Write("\nPresione <Enter> para salir...");
     Console.Read();
}

Y ya debe  funcionar correctamente el programa para convertir un número entero o decimal a binario y de binario a decimal....






No hay comentarios:

Publicar un comentario