Boolean invertieren

ESLEagleEye:
Naja in C (nicht Cpp oder C#) ist der Boolean nichtmal "out of the box" enthalten. Ich weiß nicht genau was du vor hast, aber du könntest Beispielsweise mit einer enum arbeiten und dann "WAHR" den Wert 0 und "FALSCH" den Wert 1 zuweisen.

TRUE und 1 sind das gleiche und auch HIGH. Übrigens in einer Bedingung auch jeder positive Wert verschieden von 0.
Ebenso ist FALSE, 0 und LOW das gleiche.

Beispiel:

if (A) {...}
ist wahr wenn A =1, oder A=4 ecc ist.
ist falsch wenn A=0 ist.
if (!A){...}
ist falsch wenn A =1, oder A=4 ecc ist.
ist wahr wenn A=0 ist.

Die Negation kann man überall machen; im Bedingungen oder Zuweisungen.
Sogar als Verschieden oder Ungleichzeichen: A!=B (A nicht gleich B). != kann man auch als <> schreiben.

Das ~ negiert bitweise. Das heist jedes Bit eines Bytes einzeln.
Das heißt es invertiert die Zahl B01010101 in B10101010. Das B ist in diesem Fall nur die Darstellungsart der Zahl, nicht die interne Verarbeitung im Controller. Der Controller rechnet immer Binär, die Darstellung erfolgt für den Menschen Dezimal, Binär, Hexadezimal, oktal, als Zeichen oder als Fließkomazahl, je nach Formatierungsanweisung: siehe Serial.print() - Arduino Reference

Eine Binärzahl ist als eine 1Byte Zahl definiert.

In der Elektronik wird die Negation auch als Strich über der Bezeichnung eines Pins geschrieben.

Grüße Uwe