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:
Pozdrav!