![]() |
Bits abfragen oder setzen
:shock: Hallo zusammen
ich bekomme aus einer Ein-Ausgabeeinheit einen dezimalkocdierten Wert der einzelnen Eingänge zurück (Eingang 0 = Bit 0 =1 werden aufaddiert, Eingang 1 = Bit 1 =2 werden aufaddiert,Eingang 4 = Bit 4 =16 werden aufaddiert usw.).Wie kann ich diese Werte einfach abfragen. Für die Ausgänge Addiere ich einfach 1,2 oder 16 auf.Hat jemand eine Idee ohne es mit vielen IF-Then schleifen zu machen. Vielen Dank im Voraus Gruss Bernd |
Folgender Thread hat sich ausführlich mit dem Thema beschäftigt
![]() |
Hallo Sakura
Danke für den Hinweis, aber das bezieht sich sufs komplette invertieren, und nützt mir so nichts. gruss Bernd |
Na gut, dann noch einmal separat. Irgendwo hatten wir die schon mal...
Setzen eines Bits (0..31)
Delphi-Quellcode:
Setzen eines Bits (0..31)
function SetBit(CurrentValue: Integer; Bit: Byte; Position: Boolean): Integer
begin if Position then Result := CurrentValue or (1 shl Bit) else Result := CurrentValue and (not (1 shl Bit)); end;
Delphi-Quellcode:
...:cat:...
function GetBit(CurrentValue: Integer; Bit: Byte): Boolean;
begin Result := CurrentValue and (1 shl Bit) > 0; end; |
Hallo Sekura
Entschuldige, das ich mich erst jetzt melde erstmal herzlichen Dank für deine Auskunft Es war noch keine Zeit es zu probieren Gruss Bernd |
Hallo Sakura
Herzlichen Dank ! Es klappt sehr Gut und Ich hoffe diesen Code mittlerweile auch Verstanden zu haben. Gruss Bernd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr. |
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