AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schneller Zugriff auf Bits

Ein Thema von Dust Signs · begonnen am 16. Jan 2005 · letzter Beitrag vom 20. Jan 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Schneller Zugriff auf Bits

  Alt 20. Jan 2005, 14:01
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.
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz