Introduction
- We are used to operations that can be applied to numbers (integers and floats), such as:
- Addition
- Subtraction
- Multiplication
- Division
- And also operations that can be applied to strings, such as:
- subString()
- append()
- split()
- However there is another class of operations which can be applied directly to bits, we will cover 3 of them here:
- AND
- OR
- XOR
- It should also be noted, that although the bitwise operations are defined for single bits, they are applied to larger data types (such as integers). When a bitwise operation is applied to an integer, it is applied to each bit individually.
AND
- the AND operator is a binary operator, it operates on two parameters of equal length (in bits).
- IF c = a AND b, then c == 1 if and only if a == 1 and b == 1.
- Example:
a = 0011 b = 1010 c = 0010
- Code (Python)
def print_bits(i): print(bin(i)[2:].zfill(4)) a = int('0011', 2) print_bits(a) b = int('1010', 2) print_bits(b) print_bits(a & b)
OR
- the OR operator is a binary operator, it operates on two parameters of equal length (in bits).
- IF c = a OR b, then c == 0 if and only if a == 0 and b == 0.
- Example:
a = 0011 b = 1010 c = 1011
- Code (Python)
def print_bits(i): print(bin(i)[2:].zfill(4)) a = int('0011', 2) print_bits(a) b = int('1010', 2) print_bits(b) print_bits(a | b)
XOR
- the XOR operator is a binary operator, it operates on two parameters of equal length (in bits).
- XOR is short for 'exclusive OR', it is similar to OR, however if both a and b are set to 1 then c is set to 0.
- IF c = a XOR b, then c == ! if and only if a OR b == 1 and a AND b == 0.
- Example:
a = 0011 b = 1010 c = 1001
- Code (Python)
def print_bits(i): print(bin(i)[2:].zfill(4)) a = int('0011', 2) print_bits(a) b = int('1010', 2) print_bits(b) print_bits(a ^ b)