Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Dezimal nach Dual umwandeln

  Alt 2. Aug 2006, 03:15
Ohne jetzt die function dec2bin2 getestet zu haben, würde ich sagen:

Du testet den Integer vom Bit 7 bis Bit 0.
((int shr 7)AND 1) testet Bit7 auf 1 und ergibt ein Boolean.

Mit AND-Verkünpfungen kann man Integerwerte auf gesetzte Bits testen.
z.b:
Code:
5 AND 1 = 1

    0101  (=5)
AND 0001  (=1)
--------------
 =  0001  (=1)

 //oder
5 AND 4 = 4

    0101 (=5)
AND 0100 (=4)
--------------
 =  0100 (=4)

// oder
5 AND 2 = 0

     0101 (=5)
AND 0010 (=2)
---------
 =   0000 (=0)
in Dec2Bin2 testest du quasi das Bit 0 auf 1 oder 0.

Die Schleife läuft runter von 7 auf 0 um die Reihenfolge der Einsen und Nullen im Result-String beizubehalten.

Delphi-Quellcode:
for i := 0 to 7 do
  Result := IntToStr((Int shr i) and 1) + Result;
sollte genauso funktionieren.

Wenn du größere Zahlen als 65535 testen willst, muß du für die For-Schleife die Anzahl der zu testenden Bits ermitteln.
  Mit Zitat antworten Zitat