Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Was bedeutet diese Funktion in deutsch?
ute.h_80 - Di 13.01.04 22:24
Titel: Was bedeutet diese Funktion in deutsch?
Vielleicht könnt ihr mir helfen.
Was bedeutet diese Funktion in deutsch? Und was macht sie mit dem übergebenen Wert?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| FUNCTION Binary_Length(x:int64):int64; BEGIN result:=0; WHILE x>0 DO BEGIN inc(result); x:=x SHR 1 END; END; |
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
KidPaddle - Di 13.01.04 22:47
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
ute.h_80 - Di 13.01.04 23:11
DANKE!!!
super erklärung! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!