Die Funktion ermittelt das höchste gesetzte Bit und gibt die Stelle zurueck.
Du hast z. B. eine Zahl 22, dann ist die Binärdarstellung 00010110. Mit der Funktion SHR wird vorne ein 0 angehängt und die rechte Stelle wird entfernt. Das wird shiften genannt und zwar hier nach rechts.
SHR - Shift right
SHL - Shift left
Dadurch, dass bei jedem Durchlauf eine 1 wegfallen kann, ist irgendwann keine 1 mehr vorhanden und das ist dann, wenn der Wert gleich 0 ist.
Schleifendurchlauf:
1. 10110 Result := 1
2. 01011 Result := 2
3. 00101 Result := 3
4. 00010 Result := 4
5. 00001 Result := 5
6. 00000 Schleife wird verlassen
Das höchste gesetzte Bit ist das 5 Bit.
Ich hoffe, das war verständlich.
Gruß
KidPaddle