/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Decimal til binær
Fra : Michael


Dato : 14-12-01 13:57

Er der en kommando a la IntToHex, som kan konvertere et demaltal til et
binært tal? Eller er der en der har en "smart" måde jeg kode mig ud af det
på?

Jeg bruger Delphi 4.




 
 
Niels Aage Schmidt (14-12-2001)
Kommentar
Fra : Niels Aage Schmidt


Dato : 14-12-01 14:26


"Michael" <michael@danfamily.org> skrev i en meddelelse
news:3c19f73f$0$94387$edfadb0f@dspool01.news.tele.dk...
> Er der en kommando a la IntToHex, som kan konvertere et demaltal til et
> binært tal? Eller er der en der har en "smart" måde jeg kode mig ud af det
> på?
>
> Jeg bruger Delphi 4.
>
Jeg har anvendt følgende i sammenhæng med styring af LEGO-udstyr af gammel
type med 8-bit styring. Den kan også veksle heltal til binært tal.

Function TLego.TalToBin(Nr: Byte): String;
var
Str: String;
Bit,Tal1: Byte;
Begin
Try
Tal1:=Nr;
Str:='%00000000';
FOR Bit:=8 downto 1 DO
Begin
IF Odd(Tal1) THEN Str[Bit+1]:='1';
TAL1:=Tal1 div 2;
End;
TalToBin:=Str;
Except
On Exception DO MessageDlg('Skriv tal fra 0-255', mtInformation,[mbOk], 0)
ELSE End;
End;

god fornøjelse

Niels Aage



René Jensen (14-12-2001)
Kommentar
Fra : René Jensen


Dato : 14-12-01 16:49

Michael wrote:
> Er der en kommando a la IntToHex, som kan konvertere et demaltal til et
> binært tal? Eller er der en der har en "smart" måde jeg kode mig ud af det
> på?
>
> Jeg bruger Delphi 4.

Jeg ved ikke om IdGlobal unit'en også findes i Delphi 4 (bruger selv
Delphi 6), men i denne unit findes en funktion som hedder IntToBin, og
skal kun have en integer værdi som parameter. -Ellers kan du bruge
følgende stump kode, den har samme funktionalitet som IntToHex, men
returenere bare binært.

function IntToBin(Value: Integer; Digits: Integer): string;
var
s: string;
begin
s := '';
while Value > 0 do
begin
if 1 and Value = 1 then
s := '1' + s
else
s := '0' + s;
Value := Value shr 1;
end;
while Digits > Length(s) do
s := '0' + s;
Result := s;
end;

--
Med venlig hilsen,
René Jensen

Once a upon a time a wise man said to me:
"I consider Windows like I consider bad weather ... I accept it and hope
for something better"

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste