Saturday, June 18, 2005

Transformación de un número decimal en los diferentes sistemas númericos

/*
* Created on 06/18/2005
*
* Transformación de un número decimal en los diferentes sistemas númericos
*/
package estructura;

import java.util.Scanner;
import java.util.Stack;

/**
* @author vns
*
*/
public class SistemaNúmerico {

/**
*
*/
public SistemaNúmerico() {
super();
}

private static int[] convertirArregloBytes(String s)
{
int[] resultado = new int[s.length( )];
for (int i = 0; i < s.length( ); i++)
{
resultado[i] = (int)s.charAt(i);
}
return resultado;
}

private static String convertirABase(int numero, int base)
{
Stack pila = new Stack();
StringBuffer resultado = new StringBuffer( );
int residuo = 0;

if (base == 8) {
resultado.append( residuo );
}

while ( numero >= 1 )
{
residuo = numero % base;
numero = numero / base;
pila.add(new Integer(residuo));
}

while ( !pila.empty() )
resultado.append( pila.pop().toString() );

return resultado.toString();
}

private static String convertir(int[]decimal, int base)
{
StringBuffer a = new StringBuffer();
for (int i = 0; i < decimal.length; i++)
{
a.append(convertirABase(decimal[i],base) + " ");
}
return a.toString();
}

public static void main(String args[])
{
System.out.print("Introduzca un valor: ");
String line = (new Scanner(System.in).nextLine( ));
int[] array = convertirArregloBytes(line);

System.out.println("Valor original: " + line);

System.out.println("Binario..." );
System.out.println(convertir(array,2));

System.out.println("Octal..." );
System.out.println(convertir(array,8));

System.out.println("Hexadecimal: ");
System.out.println(convertir(array,16));

System.out.println("ASCII: ");
for(int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
}
}

0 Comments:

Post a Comment

<< Home