unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Eingabe: TEdit;
Berechnen: TButton;
Text1: TLabel;
Text2: TLabel;
Binaer: TLabel;
Hexa: TLabel;
Auswahl: TRadioGroup;
procedure BerechnenClick(Sender: TObject);
private
{ Private-Deklarationen }
ErgebnisB:array of string;
ErgebnisH:array of string;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BerechnenClick(Sender: TObject);
var ergB,zaehlerB,
iB,ergH,zaehlerH,iH,Zahl:integer;
begin
Zahl:=strtoint(Eingabe.Text);
//Binär
if Auswahl.ItemIndex=0 then
begin
Binaer.Caption:='';
FillChar(ErgebnisB,SizeOf(ErgebnisB),0);
zaehlerB:=0;
ergB:=Zahl;
repeat
begin
inc(zaehlerB);
setLength(ErgebnisB,zaehlerB+1);
ErgebnisB[zaehlerB-1]:=inttostr(ergB mod 2);
ergB:=ergB div 2;
end
until ergB=0;
for
iB:=zaehlerB-1 downto 0 do
Binaer.Caption:=Binaer.Caption+ErgebnisB[
iB];
end;
//Hexadezimal
else
if Auswahl.ItemIndex=1 then
begin
Hexa.Caption:='';
FillChar(ErgebnisH,SizeOf(ErgebnisH),0);
zaehlerH:=0;
ergH:=Zahl;
repeat
begin
inc(zaehlerH);
setLength(ErgebnisH,zaehlerH+1);
case ergH mod 16 of
0..9: ErgebnisH[zaehlerH-1]:=inttostr(ergH mod 16);
10: ErgebnisH[zaehlerH-1]:='A';
11: ErgebnisH[zaehlerH-1]:='B';
12: ErgebnisH[zaehlerH-1]:='C';
13: ErgebnisH[zaehlerH-1]:='D';
14: ErgebnisH[zaehlerH-1]:='E';
15: ErgebnisH[zaehlerH-1]:='F';
end;
ergH:=ergH div 16;
end
until ergH=0;
for iH:=zaehlerH-1 downto 0 do
Hexa.Caption:=Binaer.Caption+ErgebnisH[iH];
end
else showmessage('Bitte Endform auswählen!');
end;
end.