1. Bitwise AND (&): Performs a bitwise AND operation on the corresponding bits of two operands.
  2. Bitwise OR (|): Performs a bitwise OR operation on the corresponding bits of two operands.
  3. Bitwise XOR (^): Performs a bitwise XOR (exclusive OR) operation on the corresponding bits of two operands. It returns 1 if the bits are different.
  4. Bitwise NOT (~): Flips the bits of its operand. It's a unary operator.
  5. Bitwise left shift (<<): Shifts the bits of the first operand to the left by the number of positions specified by the second operand.
  6. Bitwise right shift (>>): Shifts the bits of the first operand to the right by the number of positions specified by the second operand.
# Define two integers
a = 10  # Binary representation: 1010
b = 6   # Binary representation: 0110

# Bitwise AND
print("Bitwise AND:", a & b)  # Output: 2 (Binary representation: 0010)

# Bitwise OR
print("Bitwise OR:", a | b)   # Output: 14 (Binary representation: 1110)

# Bitwise XOR
print("Bitwise XOR:", a ^ b)  # Output: 12 (Binary representation: 1100)

# Bitwise NOT
print("Bitwise NOT of a:", ~a)  # Output: -11 (Binary representation: ...11111111111111111111111111110101)

# Bitwise left shift
print("Bitwise left shift:", a << 1)  # Output: 20 (Binary representation: 10100)

# Bitwise right shift
print("Bitwise right shift:", a >> 1)  # Output: 5 (Binary representation: 0101)

四則運算

加法/減法

  1. Perform bitwise XOR (^) to get the sum without considering carry.
  2. Perform bitwise AND (&) to get the carry.
  3. Shift the carry to the left by one position.
  4. Add the result of step 1 and the shifted carry until the carry becomes zero.
def add(a, b):
    while b != 0:
        carry = a & b
        a = a ^ b
        b = carry << 1
    return a

# Example:
print(add(5, 3))  # Output: 8

乘法

Multiplication can be performed by repeated addition or by using bitwise shift operations.

def multiply(a, b):
    result = 0
    while b > 0:
        if b & 1:
            result = add(result, a)
        a <<= 1
        b >>= 1
    return result

# Example:
print(multiply(5, 3))  # Output: 15

除法

Division can be performed by repeated subtraction or by using bitwise shift operations.

def divide(dividend, divisor):
    quotient = 0
    while dividend >= divisor:
        dividend = subtract(dividend, divisor)
        quotient = add(quotient, 1)
    return quotient

# Example:
print(divide(15, 3))  # Output: 5