Thema: Delphi Dezimal -> Binär

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: Dezimal -> Binär

  Alt 10. Nov 2003, 16:04
Du möchtest bestimmt herausbekommen welches Bit in einer Zahl gesetzt ist ?

if Odd(Value shr Bit) then ...; Value ist zb. ein Cardinal und Bit die Bitnummer mit 0 basiertem Index.
Für 32Bit/64Bit Zahlen funktioniert dies noch sehr effizient, bei größeren Zahlen aber nicht mehr. Dort ist es dann besser mit den Assembler Bit Funktionen zu arbeiten.

Delphi-Quellcode:
type
  TNumber = array[0..31] of Cardinal;

function IsBitSet(const Number: TNumber; BitIndex: Integer): Boolean;
asm
   BT [EAX],EDX
   SETC AL
end;
In TNumber ist die lange Zahle in Litte Endian gespeichert. D.h. Number[0] ist des niedrigste Digit und Number[31] dashöchstweritge Digit.

Gruß Hagen
  Mit Zitat antworten Zitat