Ładny brzuch
Witam wszystkich.
Chcabym si dowiedze jak zapisa jao liczbe (zdane) w systemie dwjkowym, trjkowym itd.:?
http://4programmers....icle.php?id=207
http://4programmers....icle.php?id=181
http://4programmers....icle.php?id=260
i jeszcz pare innych
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
www.beldzio.com/forum
gg :3183960
Nalezy taka liczbe przekonwertowac do danego systemu ;) Odsylam na www.4programmers.net
Co do zdan, nalezy najpierw zamienic kazda z liter na jej kod ASCII i dopiero owy kod przekonwertowac. Moze sie myle, niewiem.
Pozdrawiam.
--------------------
GG: 4206396
Oto dwie procedury. Jedna konwertuje liczbe w systemie dziesietnym na dwojkowy, a druga odwrotnie ;)
Procedure TForm1.DziesNaBin; Var Liczba,G,R : Integer; Co : String; begin Liczba := StrToInt(Edit1.TExt); G := Liczba; repeat R := G mod 2; If R = 0 then Co := '0' + Co else Co := '1' + Co; G := G div 2; Until G = 0; Edit2.Text := Co; End; Procedure TForm1.BinNaDzies; Var Liczba : String; I,W,Potega : Integer; Begin W := 0; Potega := 1; Liczba := Edit1.Text; For I := Length(Liczba) DownTo 0 Do Begin If Liczba[I] = '1' Then Begin W := W + Potega; End; Potega := Potega * 2; End; Edit2.Text := IntToStr(W); End;
--------------------
GG: 4206396
Witam
Wydaje mi si, e kod napisany przez Oskara s dziebko le napisane. Postanowiem napisa swj moe wyda si troszk przydugie, ale za to powinno bardzo dobrze chodzi (przeprowadzim test tka kilkudziesiciu liczb i byo dobrze :)).
function TForm1.Potega(n: integer): longint;
var
i: integer;
pot: longint;
begin
i:=0;
pot:=1;
if n<>0 then
repeat
pot:=pot*2;
inc(i);
until i=n;
result:=pot;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
bin, n: longint;
begin
bin:=0;
for n:=1 to Length(Edit1.Text) do
if Edit1.Text[n]='1' then
bin:=bin+potega(Length(Edit1.Text)-n);
Edit2.Text:=inttostr(bin);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
dec, i, n, pom: longint;
wynik: string;
begin
dec:=strtoint(Edit1.Text);
pom:=1;
n:=0;
while pom<=dec do
begin
inc(n);
pom:=pom*2;
end;
n:=n-1;
pom:=dec;
for i:=n downto 0 do
begin
pom:=pom-potega(i);
if (dec>=pom) and (pom>=0) then
wynik:=wynik+'1'
else
begin
pom:=pom+potega(i);
wynik:=wynik+'0';
end;
end;
Edit2.Text:=wynik;
end;
:cheesy:
W Edit1 wpisujesz liczb do przekonwertowania, w Edit2 masz wynik.
pozdrawiam
kind
gg: 1482111
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Chcabym si dowiedze jak zapisa jao liczbe (zdane) w systemie dwjkowym, trjkowym itd.:?
http://4programmers....icle.php?id=207
http://4programmers....icle.php?id=181
http://4programmers....icle.php?id=260
i jeszcz pare innych
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
www.beldzio.com/forum
gg :3183960
Nalezy taka liczbe przekonwertowac do danego systemu ;) Odsylam na www.4programmers.net
Co do zdan, nalezy najpierw zamienic kazda z liter na jej kod ASCII i dopiero owy kod przekonwertowac. Moze sie myle, niewiem.
Pozdrawiam.
--------------------
GG: 4206396
Oto dwie procedury. Jedna konwertuje liczbe w systemie dziesietnym na dwojkowy, a druga odwrotnie ;)
Procedure TForm1.DziesNaBin; Var Liczba,G,R : Integer; Co : String; begin Liczba := StrToInt(Edit1.TExt); G := Liczba; repeat R := G mod 2; If R = 0 then Co := '0' + Co else Co := '1' + Co; G := G div 2; Until G = 0; Edit2.Text := Co; End; Procedure TForm1.BinNaDzies; Var Liczba : String; I,W,Potega : Integer; Begin W := 0; Potega := 1; Liczba := Edit1.Text; For I := Length(Liczba) DownTo 0 Do Begin If Liczba[I] = '1' Then Begin W := W + Potega; End; Potega := Potega * 2; End; Edit2.Text := IntToStr(W); End;
--------------------
GG: 4206396
Witam
Wydaje mi si, e kod napisany przez Oskara s dziebko le napisane. Postanowiem napisa swj moe wyda si troszk przydugie, ale za to powinno bardzo dobrze chodzi (przeprowadzim test tka kilkudziesiciu liczb i byo dobrze :)).
function TForm1.Potega(n: integer): longint;
var
i: integer;
pot: longint;
begin
i:=0;
pot:=1;
if n<>0 then
repeat
pot:=pot*2;
inc(i);
until i=n;
result:=pot;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
bin, n: longint;
begin
bin:=0;
for n:=1 to Length(Edit1.Text) do
if Edit1.Text[n]='1' then
bin:=bin+potega(Length(Edit1.Text)-n);
Edit2.Text:=inttostr(bin);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
dec, i, n, pom: longint;
wynik: string;
begin
dec:=strtoint(Edit1.Text);
pom:=1;
n:=0;
while pom<=dec do
begin
inc(n);
pom:=pom*2;
end;
n:=n-1;
pom:=dec;
for i:=n downto 0 do
begin
pom:=pom-potega(i);
if (dec>=pom) and (pom>=0) then
wynik:=wynik+'1'
else
begin
pom:=pom+potega(i);
wynik:=wynik+'0';
end;
end;
Edit2.Text:=wynik;
end;
:cheesy:
W Edit1 wpisujesz liczb do przekonwertowania, w Edit2 masz wynik.
pozdrawiam
kind
gg: 1482111