Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bitweise Operatoren (https://www.delphipraxis.net/62157-bitweise-operatoren.html)

THuman 31. Jan 2006 15:56


Bitweise Operatoren
 
Hallo,
ich versuche gerade bitweise Operatoren in Delphi zu benutzen, aber ich bekomme es nicht richtig hin.
So soll es in etwa "aussehen":
Delphi-Quellcode:
const
  flagA = 2;
  flagB = 4;
  flagC = 8;

var flags: integer;

flags := flagA + flagB;
IF (flags AND flagA) THEN ..
Es erscheint immer der Fehler "Ausdruckstyp muss Boolean sein" für die Zeile,in der das then steht.

Wäre nett, wenn mir damit jemand helfen könnte
Danke!

xaromz 31. Jan 2006 15:59

Re: Bitweise Operatoren
 
Hallo,
Delphi-Quellcode:
IF (flags AND flagA) = flagA THEN ..
So stimmt's.

Gruß
xaromz

THuman 31. Jan 2006 16:15

Re: Bitweise Operatoren
 
Danke für die schnelle Antwort, jetzt funktioniert es!

Christian Seehase 31. Jan 2006 17:21

Re: Bitweise Operatoren
 
Moin THuman,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Was mir an Deinem Code noch aufgefallen ist:

Delphi-Quellcode:
flags := flagA + flagB;
Du solltest bei Flags niemals mit + (oder evtl. -) arbeiten, nur mit OR bzw. AND, da Du die Zahlenwerte nicht immer kennen kannst, und es durchaus die Möglichkeit gibt, dass ein Flag mehrere gesetzte Bits hat.
Dann kann es bei normalen arithmetischen Operatoren zu unvorhersagbaren Ergebnissen kommen.

THuman 1. Feb 2006 17:49

Re: Bitweise Operatoren
 
Ok, danke für den Tipp! Dazu habe ich auch noch was in einem älteren Thread gelesen.

Glühwürmchen 7. Sep 2006 14:03

Re: Bitweise Operatoren
 
sorry,

wie kann man einen eigenen Beitrag wieder löschen ? :oops:

Dax 7. Sep 2006 14:07

Re: Bitweise Operatoren
 
Zitat:

Zitat von Glühwürmchen
sorry,

wie kann man einen eigenen Beitrag wieder löschen ? :oops:

Garnicht. Wobei ich nicht mal finde, das du dich entschuldigen müsstest. Dein Beitrag war durchaus konstruktiv und stellte nur eine Alternative zu xaromz' Vorschlag dar.

Glühwürmchen 7. Sep 2006 14:20

Re: Bitweise Operatoren
 
Das bruhigt mich einigermaßen.
Ich kam nämlich beim Schreiben mächtig durcheinander...


Zu dem Thema bitweise "operieren" hätte ich jetzt auch noch ne Frage:

Delphi-Quellcode:
iKlein := 1;
iGross := 9;
Ist es egal ob ich schreibe

Delphi-Quellcode:
IF iKlein AND iGross > 0 THEN ...
oder

Delphi-Quellcode:
IF iGross AND iKlein > 0 THEN ...
?

brechi 7. Sep 2006 14:24

Re: Bitweise Operatoren
 
Ja ist es. Da beim Ergebnis nur noch die Bits gesetzt sind, die bei beiden gesetzt waren.

Glühwürmchen 7. Sep 2006 14:26

Re: Bitweise Operatoren
 
Danke.

Eigentlich wußte ich das schon mal.
Aber neulich versuchte ich das Bitweisige Operieren meinem Cheffe näher zu bringen mit dem Erfolg, daß er mich Bit für Bit verunsichert und durcheinander gebracht hat. ;-)

Jetzt sehe ich aber wieder klar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.
Seite 1 von 2  1 2      

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