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.