BINARNI I DECIMALNI BROJEVI (JAVA PROGRAMIRANJE)

Konverzija iz dekadnog (decimalnog) u binarni zasniva se na dijeljenju. Logično je da se suprotna transformacija, binarnog u dekadni, zasniva na množenju (binarna cifra se množi stepenom  baze, i onda dodaje na sumu).

Primjer konverzije

Broj 68 iz dekadnog u binarni :

68:2=34 ostatak: 0

34:2=17 ostatak: 0

17:2=8 ostatak: 1

8:2=4 ostatak: 0

4:2=2 ostatak: 0

2:2=1 ostatak: 0

1:2=0 ostatak: 1

Postupak se završava kada se u dijeljenju dođe do nule (1:2=0, ostatak 1). Rezultat se čita u obrnutom redoslijedu od dobijenog.Dobijeni binarni broj je: 1000100

(68)10 = (1000100)2

Program u JAVA jeziku koji vrši konverziju BIN->DEC i obrnuto:


import java.util.Scanner;
public class Bin2Dec {
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  int s = 0;
  int br;
  int opcija = 3;
  int cif;
  int t; // t - pomocna varijabla
  String dec = "";
  while (opcija > 0) {
   System.out.print("Opcija 1: Bin->Dec\nOpcija 2: Dec->Bin\n 0:IZLAZ");
   opcija = input.nextInt();
   if (opcija == 1) {
    System.out.print("\nUcitaj broj u binarnom zapisu ");
    br = input.nextInt();
    t = br;
    // provjera da li su sve cifre u binarnom zapisu
    while (t != 0) { // ponavljaj sve dok ne provjeris sve cifre
     cif = t % 10; // izdvoji cifru sa desne strane
     t = t / 10; // odbaci cifru sa desne strane - slijedece izdvajanje
     if (cif != 0 && cif != 1) {
      System.out.print("Unijeli ste broj koji nije binaran !");
     }
    }
    // konvert u dec zapis
    int p = 1; //
    t = br; // nova vrijednost pomocne varijable
    while (t != 0) {
     cif = t % 10; // izdvojanje zadnju cifru sa desne strane
     t = t / 10; // odbacivanje cifre sa desne strane
     s = s + cif * p; // dodaj u postojecu sumu
     p = p * 2; // uvecaj koeficijen za 2
    }
    System.out.print("binaran broj " + br + " = dekadni broj " + s + "\n");
   } else if (opcija == 2) {
    System.out.println("Unesi decimalan broj: ");
    br = input.nextInt();

    while (br != 0) {
     int d = br % 2;
     br /= 2;
    }
    System.out.print("\nDecimalni broj " + br + " = Binarni broj " + new StringBuilder(dec).reverse() + "\n");
   }
  }
 }
}

Rezultat:

Capture

Pozdrav!

Komentariši