[Aporte][C#]Conversor de Números

OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.476
C#

El programa convierte un número entero decimal a binario, octal y hexadecimal​

Se requiere:
Código:
Visual Studio o similares
Ejemplo
Código:
Entrada:
Introduce un número:
100

Salida:
El número es 100
El número en binario es: 1100100
El número en octal es: 144
El número en hexadecimal es: 64

Ya que el foro está en sus inicios, lo haré de la manera más fácil (aunque larga) para que sea más entendible, no me meteré a explicar cómo se convierte manualmente un número decimal a cada base, pero explicaré el código poniendo comentarios en las líneas que me parezcan importantes.
Código

PHP:
//Se importan las librerías (Visual Studio lo hace solo)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConversionNumeros  //Esto sirve únicamente para agrupar clases, Visual Studio también lo hace solo
{
    class Program  //El nombre de la clase, en este caso "Program"
    {
        static void Main(string[] args)  //El main
        {
            int num;
            int numero;
            string bin=String.Empty, binc=String.Empty, octal=String.Empty;
            string  octalc=String.Empty, hexa=String.Empty, hexac=String.Empty;
            Console.WriteLine ("Introduce un número: ");
            num = Convert.ToInt32(Console.ReadLine()); //C# sólo lee cadenas de texto por lo que hay que convertirlo a número
            numero = num;

          //Se hace un do-while que siempre se cumple al menos una vez, esto para convertir de decimal a binario
            do{
                if (num%2==1)
                    bin+="1";
                else
                    bin+="0";
                num/=2;
            }while (num!=1);
            bin+="1";  //Siempre se le agrega un 1 al final

           //Se hace un ciclo for porque el número quedó al revés y hay que invertirlo
            for (int i=1; i<=bin.Length;i++)
                binc+=bin[bin.Length-i];
            num=numero;
            //Un do-while para convertir a octal
            do{
               octal+=(num%8);
               num/=8;
            }while (num>=8);
            octal+=num;
           //Un for para invertir el úmero
            for (int i=1; i<= octal.Length;i++)
                octalc+=octal[octal.Length-i];
            num=numero;
            /Un do-while para convertir a hexadecimal
            do{
                //En el caso del hexadecimal también se usan letras por lo que es necesario crear condiciones
                if(num%16==10)
                    hexa+="A";
                else if (num%16==11)
                    hexa+="B";
                else if (num%16==12)
                    hexa+="C";
                else if (num%16==13)
                    hexa+="D";
                else if (num%16==14)
                    hexa+="E";
                else if (num%16==15)
                    hexa+="F";
                else
                    hexa+=(num%16);
                num/=16;
            }while (num!=0);
        
           //Un for para invertir
            for (int i=1; i<=hexa.Length;i++)
                hexac+=hexa[hexa.Length-i];
           
            //La impresión de los resultados
            Console.WriteLine ("El número es {0}\nEl número en binario es: {1}\n" +
                    "El número en octal es: {2}", numero, binc, octalc); //Lo que está entre corchetes indica
// que serán valores que se darán después de las comillas
            Console.WriteLine ("El número en hexadecimal es: " + hexac);

            Console.ReadKey();  //Como es en consola, esto evita que se cierre al terminar el programa y espera que se presione una tecla
        }
    }
}


Ejecutable (Exe)
[spoiler2]
Conversion de numeros.rar
Nota: Cuando descarguen y descompriman verán una carpeta con varias cosas, no las eliminen, son las librerías necesarias para que el programa funcione, si lo quieren usar sólo den click en el .exe

[/spoiler2]
 
Última edición por un moderador:
Arriba Pie