def print_binary(value: int) -> None:
"""
Prints the 8-bit binary representation of an integer.
"""
print(format(value & 0xFF, '08b'))
def swap_odd_and_even_bits(n: int) -> int:
"""
Swaps odd and even bits in a 32-bit integer.
"""
# (binary: 101010... pattern) to isolate bits in odd positions
odd_bits = n & 0xAAAAAAAA
# (binary: 010101... pattern) to isolate bits in even positions
even_bits = n & 0x55555555
print("oddBits: ", end='')
print_binary(odd_bits)
print("evenBits: ", end='')
print_binary(even_bits)
# Right-shift odd bits by 1 to move them to even positions
odd_bits >>= 1
# Left-shift even bits by 1 to move them to odd positions
even_bits <<= 1
print("oddBits Right-shift: ", end='')
print_binary(odd_bits)
print("evenBits Left-shift: ", end='')
print_binary(even_bits)
# Combine shifted bits
return odd_bits | even_bits
n = 90
# Original number in binary
print_binary(n)
result = swap_odd_and_even_bits(n)
# Final result in binary
print_binary(result)
'''
run:
01011010
oddBits: 00001010
evenBits: 01010000
oddBits Right-shift: 00000101
evenBits Left-shift: 10100000
10100101
'''