using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//int n, b;
string s;
Console.WriteLine("Escriba el numero en binario");
s = Console.ReadLine();
Console.WriteLine("El numero en octal es {0}",PasarBinBasex(s,8));
Console.WriteLine("El numero en hexadecimal es {0}", PasarBinBasex(s, 16));
Console.WriteLine("El numero en decimal es {0}", PasarBinBasex(s, 10));
/*Console.WriteLine("Escriba un numero");
n = Int32.Parse(Console.ReadLine());
Console.WriteLine("a que base(2,8,16)");
b = Int32.Parse(Console.ReadLine());
Console.WriteLine("el valor en base {0} es {1}",b,PasarDecBasex(n,b));
*/
}
static string PasarBinBasex(string s, int b)
{
string resultado="";
switch (b)
{
case 10: resultado =""+ PasarBinDec(s); break;
case 8: resultado = PasarDecBasex(PasarBinDec(s), b); break;
case 16: resultado = PasarDecBasex(PasarBinDec(s), b); break;
}
Console.WriteLine("{0}", resultado);
return resultado;
}
static string PasarDecBasex(int n, int b)
{
int cociente, resto;
string resultado = "";
cociente = n;
resto = 0;
while (cociente >= b)
{
resto = cociente % b;
cociente = cociente / b;
switch (resto)
{
case 1: resultado = "1" + resultado; break;
case 2: resultado = "2" + resultado; break;
case 3: resultado = "3" + resultado; break;
case 4: resultado = "4" + resultado; break;
case 5: resultado = "5" + resultado; break;
case 6: resultado = "6" + resultado; break;
case 7: resultado = "7" + resultado; break;
case 8: resultado = "8" + resultado; break;
case 9: resultado = "9" + resultado; break;
case 10: resultado = "A" + resultado; break;
case 11: resultado = "B" + resultado; break;
case 12: resultado = "C" + resultado; break;
case 13: resultado = "D" + resultado; break;
case 14: resultado = "E" + resultado; break;
case 15: resultado = "F" + resultado; break;
case 0: resultado = "0" + resultado; break;
}
Console.WriteLine("cociente={0} resto={1} resultado {2}", cociente, resto, resultado);
}
Console.WriteLine("cociente={0} resto={1} resultado {2}", cociente, resto, resultado);
switch (cociente)
{
case 1: resultado = "1" + resultado; break;
case 2: resultado = "2" + resultado; break;
case 3: resultado = "3" + resultado; break;
case 4: resultado = "4" + resultado; break;
case 5: resultado = "5" + resultado; break;
case 6: resultado = "6" + resultado; break;
case 7: resultado = "7" + resultado; break;
case 8: resultado = "8" + resultado; break;
case 9: resultado = "9" + resultado; break;
case 10: resultado = "A" + resultado; break;
case 11: resultado = "B" + resultado; break;
case 12: resultado = "C" + resultado; break;
case 13: resultado = "D" + resultado; break;
case 14: resultado = "E" + resultado; break;
case 15: resultado = "F" + resultado; break;
case 0: resultado = "0" + resultado; break;
}
Console.WriteLine("cociente={0} resto={1} resultado {2}", cociente, resto, resultado);
return resultado;
}
static int PasarBinDec(string s)
{
double suma;
suma = 0;
for (int i = 0; i < s.Length; i++)
{
suma = suma + ((int)s[i] - (int)'0') * Math.Pow(2, s.Length - 1 - i);
}
return (int)suma;
}
}
}