Ł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
  •