Pasar un número de binario a decimal en Java

Convertir un número de binario a decimal en Java

El programa para pasar un número expresado en binario a decimal se basa en la forma tradicional de hacerlo. Los dígitos del número binario ocupan una posición que se numera de derecha a izquierda empezando por cero. La posición del dígito más a la derecha es la 0.

Numero Binario:
1
1
0
1
0
1
Posición que ocupa cada dígito
5
4
3
2
1
0

Para pasar el número a decimal se multiplica cada dígito binario por 2 elevado a la posición que ocupa. La suma de todos los productos es el equivalente en decimal.

/*
* Programa Java que convierte un número binario a decimal
*/
import java.util.Scanner;

public class BinarioDecimal {

  public static void main(String[] args) {
    long numero, aux, digito, decimal;
     int exponente;
     boolean esBinario;
     Scanner sc = new Scanner(System.in);

    //Leer un número por teclado y comprobar que es binario
     do {
          System.out.print("Introduce un numero binario: ");
          numero = sc.nextLong();
          //comprobamos que sea un número binario es decir
          //que este formado solo por ceros y unos
          esBinario = true;
          aux = numero;
          while (aux != 0) {
                     digito = aux % 10; //última cifra del números
                     if (digito != 0 && digito != 1) { //si no es 0 ó 1
                          esBinario = false; //no es un número binario
                     }
                     aux = aux / 10; //quitamos la última cifra para repetir el proceso                           
           }
      } while (!esBinario); //se vuelve a pedir si no es binario

      //proceso para pasar de binario a decimal
      exponente = 0;
      decimal = 0; //será el equivalente en base decimal
      while (numero != 0) {
                //se toma la última cifra
                digito = numero % 10;
                //se multiplica por la potencia de 2 correspondiente y se suma al número                          
                decimal = decimal + digito * (int) Math.pow(2, exponente);
                //se aumenta el exponente
                exponente++;
                //se quita la última cifra para repetir el proceso
                numero = numero / 10;
      }
      System.out.println("Decimal: " + decimal);
   }
}

El debugger de NetBeans

El debugger o depurador de NetBeans permite:
- Ejecutar el código fuente paso a paso
- Ejecutar métodos del JDK paso a paso.
- Utilizar breakpoint para detener la ejecución del programa y poder observar el estado de las variables.
- Conocer el valor que toma cada variable o expresión según se van ejecutando las líneas de código.
- Modificar el valor de una variable sobre la marcha y continuar la ejecución.
Mediante el debugger podemos:
- Encontrar de forma rápida y fácil errores en el programa.
- Entender mejor el flujo de ejecución del programa.
INICIAR EL DEBUGGER
Hay varias formas de iniciar la ejecución del programa en modo depuración:
1: Debug -> Debug Main Project (Ctrl. + F5) o pulsando sobre el botón:

También pulsando con el botón derecho sobre un proyecto en explorador de proyectos y seleccionar Debug
El programa se ejecuta hasta llegar al primer breakpoint. Si no han establecido breakpoints, el programa se ejecutará normalmente hasta el final.
2: Debug -> Run to Cursor (F4)
Se ejecuta el programa hasta la instrucción donde se encuentra el cursor.
3: Debug -> Step Into (F7)
Comienza la depuración desde la primera línea del método main. El depurador se detiene esperando que decidamos el modo de depuración.
Una vez iniciada la depuración y el depurador se detiene, la siguiente línea de código que se va a ejecutar aparece en verde, con una flecha verde a su izquierda:

En este punto la depuración puede continuar utilizando distintas opciones:

Step Over (F8) Ejecuta una línea de código. Si la instrucción es una llamada a un método, ejecuta el método sin entrar dentro del código del método.

Step Into (F7) Ejecuta una línea de código. Si la instrucción es una llamada a un método, salta al método y continúa la ejecución por la primera línea del método.

Step Out (Ctrl + F7) Ejecuta una línea de código. Si la línea de código actual se encuentra dentro de un método, se ejecutarán todas las instrucciones que queden del método y se vuelve a la instrucción desde la que se llamó al método.

Run to Cursor (F4) Se ejecuta el programa hasta la instrucción donde se encuentra el cursor.

Continue (F5) La ejecución del programa continúa hasta el siguiente breakpoint. Si no existe un breakpoint se ejecuta hasta el final.

Finish Debugger Session(Mayúsculas + F5). Termina la depuración del programa.

ESTABLECER BREAKPOINTS
Un breakpoint o punto de interrupción es una marca que indica al depurador que debe detenerse cuando la ejecución del programa llegue a ella.
Cuando el programa se detiene en un breakpoint podemos:
  • Examinar los valores actuales de las variables.
  • Detectar cuando se crea un objeto.
  • Continuar la depuración línea a línea del programa.
Para fijar un breakpoint se pulsa sobre el número de línea donde se desea colocar. La línea queda resaltada en color rojo con una marca del mismo color en el margen izquierdo.

También se puede crear seleccionando: Debug -> New Breakpoint
Para eliminar un breakpoint se pulsa sobre el cuadrado rojo.
Para eliminarlos todos: botón derecho en la ventana de breakpoints -> Delete All
Para desactivar un breakpoint, botón derecho sobre la marca roja -> breakpoint -> desmarcar Enable.

Para desactivarlos todos: botón derecho en la ventana de breakpoints -> Disable All
Los breakpoints desactivados aparecen en gris.

BREAKPOINTS CONDICIONALES
Podemos hacer que la depuración se detenga en un breakpoint solo si se cumple una determinada condición o si la línea de código se ha ejecutado un número determinado de veces.
Para fijar un breakpoint condicional:
Botón derecho sobre el breakpoint -> Breakpoint > Properties
La marca cambia de aspecto:

DEBUGGING WINDOWS

En el proceso de depuración se usan distintas ventanas situadas bajo la ventana de código. Algunas aparecen automáticamente.
Para mostrarlas pulsar Windows-> Debugging y seleccionar la que queramos.

Las más importantes son: Breakpoints, Variables, Watches y Call Stack.

LA VENTANA DE VARIABLES LOCALES.

En esta ventana se muestran las variables, su tipo y su valor actual.

El debugger permite cambiar el valor de una variable local en esta ventana y continuar la ejecución del programa usando el nuevo valor de la variable.
AÑADIR UN WATCH
Para obtener el valor de una variable durante la depuración de un programa se sitúa el ratón sobre la variable y se mostrará, el depurador mostrará el tipo y el valor de la variable.
Otra forma de monitorizar el valor de una variable es mediante un watch.
Para agregar un watch a una variable o una expresión, selecciona la variable o expresión a supervisar y a continuación pulsar. Debug-> New Watch.
O también: botón derecho sobre la variable-> New Watch
Las variables a las que se les ha asignado un watch aparecen en la ventana Watches:

También aparecen en primer lugar en la ventana de variables.

MOSTRAR LA BARRA DE HERRAMIENTAS DEL DEPURADOR

La barra de herramientas del depurador aparece cuando iniciamos la depuración. Para mostrarla siempre: View -> Toolbars -> Debug.