DWORD1 := DWORD2 OR DWORD3 ? Was ist das?

ssyn

Level-2
Beiträge
224
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe aus Versehen die falsche Variablestyp (DWORD anstatt BOOL) gewählt und da war folgende Code:

DWORD1 := DWORD2 OR DWORD3 OR DWORD4;

Aber ich bekam keinen Fehler dabei, obwohl alle Variables waren dword. Hé, was ist das, hab ich gedacht. Ich dachte immer, dass OR/AND/XOR gehört nur zu BOOL-Variables, da muss unbedingt Fehler sein! Ich habe bei mir es getestet und verstehe da nicht, was es bedeutet, wie es funktioniert und wofür kann man es benutzen.

Herunter ein paar Simulation, ich fang von Beispiel 1. bis 7. an und änderte verschieden Variable in OR-Bereich. Und Ergebnis war immer erstaunlich für mich.
 

Anhänge

  • dw_2.jpg
    dw_2.jpg
    62,1 KB · Aufrufe: 19
  • dw_1.jpg
    dw_1.jpg
    83,4 KB · Aufrufe: 19
Zuviel Werbung?
-> Hier kostenlos registrieren
1706082557967.png

Mal ein 8 Bit Beispiel:
Code:
00000011 := 00000001 OR 00000010;
00000011 := 00000011 OR 00000011;
00000011 := 00000011 OR 00000000;
10000011 := 10000001 OR 00000010;

Das Beispiel aus dem Screenshot entspricht ( bei dir halt 32 Bit, hier vereinfacht 8 Bit ):
Code:
00000011 := 00000010 OR 00000000 OR 00000011;
 
... das geht genauso auch mit BYTE und WORD ...
Es dient dem Maskieren oder Ausmaskieren von mehreren Bits. Ein direktes Beispiel habe ich gerade nicht (obwohl bestimmt schon tausende Male eingesetzt).

Achja : und das gilt natürlich auch für AND und XOR ...
 
Zurück
Oben