Podręcznik

1. Wyrażenia, operatory i funkcje matematyczne

1.4. Operatory logiczne oraz relacji

W języku C++ możemy także na zmiennych wykonywać operacje logiczne.
bool a = true;
bool b = false;

bool resultAnd = a && b; // AND logiczny: resultAnd = false
bool resultOr = a || b; // OR logiczny: resultOr = true
bool resultNot = !a; // NOT logiczny: resultNot = false
Możemy także wykonywać operacje relacyjne.
int x = 10;
int y = 5;

bool isEqual = (x == y); // Równość: isEqual = false
bool isNotEqual = (x != y); // Nierówność: isNotEqual = true
bool isGreater = (x > y); // Większe: isGreater = true
bool isLess = (x < y); // Mniejsze: isLess = false
bool isGreaterOrEqual = (x >= y); // Większe lub równe: isGreaterOrEqual = true
bool isLessOrEqual = (x <= y); // Mniejsze lub równe: isLessOrEqual = falseCzasmi istnieje także konieczność wykonania operacji bitowych na poszczególnych zmiennych.
unsigned int a = 5; // binarnie: 0101
unsigned int b = 3; // binarnie: 0011

unsigned int resultAnd = a & b; // AND bitowy: resultAnd = 1 (binarnie: 0001)
unsigned int resultOr = a | b; // OR bitowy: resultOr = 7 (binarnie: 0111)
unsigned int resultXor = a ^ b; // XOR bitowy: resultXor = 6 (binarnie: 0110)
unsigned int resultNot = ~a; // NOT bitowy: resultNot = 4294967290 (binarnie: 11111111111111111111111111111010)
unsigned int resultShiftLeft = a << 1; // Przesunięcie w lewo: resultShiftLeft = 10 (binarnie: 1010)
unsigned int resultShiftRight = a >> 1; // Przesunięcie w prawo: resultShiftRight = 2 (binarnie: 0010)