- Mensajes
- 8.048
- Reacciones
- 840
- Puntos
- 1.476
C#
El programa convierte un número entero decimal a binario, octal y hexadecimal
El programa convierte un número entero decimal a binario, octal y hexadecimal
Se requiere:
Código:
Visual Studio o similares
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: