170 likes | 650 Views
Prevody medzi číselnými sústavami. Daniel Polčin. Najpoužívanejšie číselné sústavy: desiatková (dekadick á ) dvojková (bin árna ) osmičková ( oktálna ) šestnástková ( hexadecimálna ). desiatková: používa číslice 0, 1, 2, ... 9 721 10 = 7 .10 2 + 2 .10 1 + 1 .10 0 … 721 10
E N D
Prevody medzi číselnými sústavami Daniel Polčin
Najpoužívanejšie číselné sústavy: • desiatková (dekadická) • dvojková (binárna) • osmičková (oktálna) • šestnástková (hexadecimálna)
desiatková:používačíslice0, 1, 2, ... 9 72110 = 7.102+ 2.101 + 1.100… 72110 ◄zápis čísel pomocou mocnín 10 • dvojková:používačíslice0, 1 1410= 1 . 23 + 1 . 22 + 1 . 21 +0 . 20 … 11102 ◄zápis čísel pomocou mocnín 2 • trojková:používačíslice0, 1, 2 269510 = 1 . 37 + 0. 36 + 2 . 35 + 0 . 34 + + 0 . 33 + 2 . 32 + 1 . 31 + 1 . 30… 102002113 ◄zápis čísel pomocou mocnín 3 • trinástková:používačíslice0, 1, 2, ... 9, A(=10), B (=11), C (=12) 269510 = 1 . 133 + 2. 132 + 12 . 131 + 4 . 130… 12C413 ◄zápis čísel pomocou mocnín 13 atď.
Úloha Zostavte program na prevod čísla z desiatkovej do dvojkovej až šestnástkovej číselnej sústavy.
Program prevod_10_16; uses crt; var Z,X,C,K,I:integer; A:array [0..15] of string; B:string; function MOC(X,K:integer):longint; var I:integer; M:longint; begin M:=1; for I:=1 to K do M:=M*X; MOC:=M; end; begin clrscr; writeln('zadaj sustavu, do ktorej prevedieme cislo:'); readln(X); writeln('zadaj cislo v desiatkovej ciselnej sustave:'); readln(C); K:=0;
while C>MOC(X,K) do K:=K+1; {INC(K)} if C<MOC(X,K) then K:=K-1; {DEC(k)} for I:=K downto 0 do begin Z:=C DIV MOC (X,I); C:=C MOD MOC (X,I); case Z of 15:A[I]:='F'; 14:A[I]:='E'; 13:A[I]:='D'; 12:A[I]:='C'; 11:A[I]:='B'; 10:A[I]:='A' else STR (Z,A[I]); end; end; B:=''; for I:=K downto 0 do B:=B+A[I]; writeln(B); readln; end.
Jednoduchý algoritmus na prevod čísla z desiatkovej do dvojkovej sústavy (podobne do ľubovoľnej inej) : prečítaj číslo opakuj číslo deľ celočíselne dvoma zapíš zvyšok až kým podiel nebude 0 zvyšky zapíš od posledného po prvý
Príklad : Prepíšte číslo 78 do dvojkovej sústavy ! 78:2=39 zv.0 39:2=19 zv.1 19:2= 9 zv.1 9:2= 4 zv.1 4:2= 2 zv.0 2:2= 1 zv.0 1:2= 0 zv.1 koniec Výsledok je 1001110
Načo je to dobré ? • Ak je informácia zapísaná ako binárne číslo, tak ju nazývame digitálna informácia. • Počítače a moderné komunikačné systémy spracúvajú a šíria digitálne informácie oveľa rýchlejšie a presnejšie ako analógové informácie.
Úloha Zadané číslo v desiatkovej číselnej sústave preveďte podľa predchádzajúceho algoritmu do dvojkovej sústavy.
program prevod_10_2; uses crt; var d,p,i:integer; a:array [1..100] of integer; begin clrscr; Writeln ('Zadaj cislo v desiatkovej sustave: '); readln (d); p:=0; repeat inc(p); a[p]:= d mod 2; d:= d div 2; until d=0; writeln ('Zadane cislo v dvojkovej sustave : '); for i:=p downto 1 do write (a[i]); readln; end.
Úloha Prechádzajúci program upravte tak, aby prevádzal zadané číslo v desiatkovej číselnej sústave do dvojkovej až šestnástkovej číselnej sústavy.
program prevod_10_16; uses crt; var d,p,i,s:integer; a:array [1..100] of integer; begin clrscr; Writeln ('Zadaj cislo v desiatkovej sustave: '); readln (d); Writeln ('Zadaj sustavu, do ktorej chces prevod: '); readln (s); p:=0; repeat inc(p); a[p]:= d mod s; d:= d div s; until d=0;
write ('Zadane cislo v ',s,'- kovej sustave : '); for i:=p downto 1 do begin case a[i] of 15:write ('F'); 14:write ('E'); 13:write ('D'); 12:write ('C'); 11:write ('B'); 10:write ('A'); else write (a[i]) end; end; readln; end.