sábado, 30 de marzo de 2013

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

Les vuelvo a mostrar como hacer la conversión de un número entero a decimal y de binario a decimal, pero en Visual c#.

En la Form1.cs [Diseño], utilizaremos un componente label y le pondremos en la propiedad Text: "Introduzca el valor a convertir", después le pondremos un componente textBox a un lado del label; luego dos componentes buttons, uno para la conversión de decimal a binario y el otro para la conversión de binario a decimal; y por último, otro componente label para visualizar el valor ya convertido.
Después de haber terminado con el diseño de la aplicación, vamos a proseguir con la introducción del código.

Primero haremos de forma directa la conversión de decimal a binario, hacemos doble click en el primer botón e ingresamos el siguiente código:


private void button1_Click(object sender, EventArgs e)
{
    long num = Convert.ToInt32(textBox1.Text);
    if (num > 0)
    {
        String bin = "";
        while (num > 0)
        {
            if (num % 2 == 0)
            {
                label2.Text = bin = "0" + bin;
            }
            else
            {
                label2.Text = bin = "1" + bin;
            }
            num = (long)(num / 2);
        }
        label2.Text = bin;
     }
     else
     {
         if (num < 0)
             MessageBox.Show("Solo numeros positivos");
     }
}

Ahora ingresaremos un método para la conversión de binario a decimal:


public String binToDec(String cadNumero)
{
    int i, iLength;
    long iResult = 0;
    iLength = cadNumero.Length;
    long[] cadena = new long[cadNumero.Length];
    long numero = long.Parse(cadNumero);
    iLength--;
    long cifra = 0;
    for (int j = cadNumero.Length - 1; j >= 0; j--)
    {
         cifra = numero % 10;
         numero = numero / 10;
         cadena[j] = cifra; 
    }

    for (i = 0; i < cadNumero.Length; i++, iLength--)
    {
         iResult += cadena[i] * (long)Math.Pow(2, iLength);
    }
    return iResult.ToString();
}

Ya terminado el método, le damos doble click al segundo botón y escribimos:


private void button2_Click(object sender, EventArgs e)
{
    label2.Text = binToDec(textBox1.Text);
}

Y eso es todo, les debe funcionar bien...


2 comentarios:

  1. hola oye es que tengo un problema con el metodo y no me deja correrlo... te agradeceria si me ayudaras

    ResponderEliminar
  2. Hola aqui les dejo un link a mi blog creo que tiene lo que buscan en la version visual studio 2015

    http://ingenieriazen.blogspot.mx/2017/05/calculadora-decimal-binario-y-binario.html

    ResponderEliminar