Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schneller Zugriff auf Bits (https://www.delphipraxis.net/38208-schneller-zugriff-auf-bits.html)

Binärbaum 20. Jan 2005 14:01

Re: Schneller Zugriff auf Bits
 
Als Funktion für dieses Problem könnte man folgendes verwenden:

Delphi-Quellcode:
type
 TBitOp = (boCheck, boSet, boToggle);
 
 ...
 
function BitTest(var x: LongInt; num_of_bit: Byte; op: TBitOp = boCheck): Boolean;
begin
 Result:= True;
 case op of
  boCheck: Result:= ((x and (1 shl num_of_bit)) <>0);
  boSet: x:= (x or (1 shl num_of_bit));
  boToggle: x:= (x xor (1 shl num_of_bit));
 end;
end;
Also x ist der Integer, der überprüft oder verändert werden soll.
Über den Parameter op: TBitOp steuert man, was getan werden soll: Überprüfen ob ein Bit gesetzt ist(boCheck, Standardeinstellung; ergibt True, wenn gesetzt), Bit setzen (boSet) oder ein Bit negieren (boToggle).
Die Operationen boSet und boToggle geben immer True zurück, da der Rückgabewert in diesem Fall ja nicht von Bedeutung ist.
Der Parameter num_of_bit gibt an, um welches bit es sich handelt. Achtung: Zählung beginnt bei null und geht demzufolge bis 31.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz