domingo, 6 de febrero de 2011

Convertir de binario a decimal a mano en Java


este ejemplo muy simple muestra como convertir un numero en base binaria, en formato de cadena, a un numero entero en base decimal.

básicamente el proceso consiste en recorrer la cadena de izquierda a derecha, carácter por carácter, e ir acumulando el valor en una variable entera, cuando el carácter es  "0" el resultado se multiplica por 2, cuando el carácter es "1", el resultado se multiplica por 2, y se le suma 1, al final de la cadena tendremos el numero convertido en el resultado.

    private static int binToDec(String pNumBin) {        
        
        int resultado = 0 ;        
        
        for( int i = 0; i < pNumBin.length() ; i++ ) {
            
            char digito = pNumBin.charAt( i );
            
            /* en general, resultado = resultado * base + digito */
            
            try {
                
                int valDigito = Integer.parseInt( Character.toString(digito) ) ;
                
                resultado = resultado * 2 + valDigito ;
                
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            
        }
        
        return resultado ; 
        
    }


Descargar Codigo Fuente