TRANSFORMACION ENTRE SISTEMAS NUMERICOS

Ejercicio de transformacion de sistemas numericos de decimal a octal o binario mediante divisiones sucesivas y guardando el resultado en un vector que luego lo retornamos a la clase principal para luego mostrarlo en pantalla.
El metodo de conversion usado es el siguiente:

Conversión de Decimal a Binario
Para la conversión de decimal a binario se emplean dos métodos. El primero es divisiones sucesivas y el segundo es suma de potencias de 2.
Por divisiones sucesivas
Se va dividiendo la cantidad decimal por 2, apuntando los residuos, hasta obtener un cociente cero. El último residuo obtenido es el bit más significativo (MSB) y el primero es el bit menos significativo (LSB).
Ejemplo
Convertir el número 15310 a binario.

Figura 1.2.1.Ejemplo de conversión de decimal a binario

El resultado en binario de 15310 es 10011001

A continuacion les dejo el codigo y capturas.

CLASE TRANSFORMACION

package Packtransformacion;

public class Transformacion {

    private int valor;

    public Transformacion() {
        this.valor = 0;
           
    }

    public void setValor(int valor) {
        this.valor = valor;
    }
   
   
    public int [] TransformarBinario(){
    int a=0,b=0;
    int []r=new int[20];
    while (this.valor>0){
        r[b]=this.valor%2;
        this.valor=this.valor/2;
    b++;
    }
    while (b<20){
        r[b]=2;
    b++;
    }
    return r;
    }
   
    public int [] TransformarOctal(){
    int a=0,b=0;
    int []d=new int[20];
    while (this.valor>0){
        d[b]=this.valor%8;
        this.valor=this.valor/8;
    b++;
    }
    while (b<20){
        d[b]=8;
    b++;
    }
    return d;
    }
    
    }

CLASE PRINCIPAL

package Packtransformacion;

import java.io.*;

public class Principal {

    //Objetos Leer Datos Teclado.
 public static InputStreamReader Leer = new InputStreamReader(System.in);
 public static BufferedReader Teclado = new BufferedReader(Leer);

    public static void main(String[] args)throws IOException
    {
        int []p= new int [20];
        int []o= new int [20];
            Transformacion bin = new Transformacion();
        System.out.print("Ingrese valor ");
        int valor = Integer.parseInt(Teclado.readLine());
        bin.setValor(valor);
        System.out.print("Escoja 1 binario 2 octal");
        int v = Integer.parseInt(Teclado.readLine());
     
        switch(v){
           
            case 1:
        p=bin.TransformarBinario();
      for (int i=19;i>=0;i--){
          if (p[i]!=2){
       System.out.print(p[i]); }}
       break;  
            case 2:
      o=bin.TransformarOctal();
      for (int i=19;i>=0;i--){
          if (o[i]!=8){
       System.out.print(o[i]); }}
        break;
        }
       
       
       
        // TODO code application logic here
    }
}

 



 

0 comentarios:

Publicar un comentario