Thema: Delphi IsPowerOfTwo

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.054 Beiträge
 
Delphi 12 Athens
 
#1

IsPowerOfTwo

  Alt 6. Mai 2009, 20:52
Hab hier noch was Kleines als Nachtrag

Code-Library -> Algorithmen -> IsPowerOfTwo

Delphi-Quellcode:
Function IsPowerOfTwo(i: LongWord): Boolean;
  ASM
    BSR EDX, EAX
    BSF EAX, EAX
    JZ @@None
    CMP EAX, EDX
    SETZ AL
    @@None:
  End;
es ist die Kurzfassung von:
Delphi-Quellcode:
Function IsPowerOfTwo(i: LongWord): Boolean;
  ASM
    TEST EAX, EAX
    JZ @@None
    BSR EDX, EAX
    BSF ECX, EAX
    CMP ECX, EDX
    JNE @@None
    MOV AL, &True
    @@None:
    MOV AL, &False
  End;

// bzw.

Function IsPowerOfTwo(i: LongWord): Boolean;
  ASM
    BSR EDX, EAX
    JZ @@None
    BSF ECX, EAX
    CMP ECX, EDX
    JNE @@None
    MOV AL, &True
    @@None:
    MOV AL, &False
  End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat