bit_manipulation.swap_all_odd_and_even_bits¶
Functions¶
|
|
|
Module Contents¶
- bit_manipulation.swap_all_odd_and_even_bits.show_bits(before: int, after: int) str ¶
>>> print(show_bits(0, 0xFFFF)) 0: 00000000 65535: 1111111111111111
- bit_manipulation.swap_all_odd_and_even_bits.swap_odd_even_bits(num: int) int ¶
We use bitwise AND operations to separate the even bits (0, 2, 4, 6, etc.) and odd bits (1, 3, 5, 7, etc.) in the input number.
We then right-shift the even bits by 1 position and left-shift the odd bits by 1 position to swap them.
Finally, we combine the swapped even and odd bits using a bitwise OR operation to obtain the final result.
>>> print(show_bits(0, swap_odd_even_bits(0))) 0: 00000000 0: 00000000 >>> print(show_bits(1, swap_odd_even_bits(1))) 1: 00000001 2: 00000010 >>> print(show_bits(2, swap_odd_even_bits(2))) 2: 00000010 1: 00000001 >>> print(show_bits(3, swap_odd_even_bits(3))) 3: 00000011 3: 00000011 >>> print(show_bits(4, swap_odd_even_bits(4))) 4: 00000100 8: 00001000 >>> print(show_bits(5, swap_odd_even_bits(5))) 5: 00000101 10: 00001010 >>> print(show_bits(6, swap_odd_even_bits(6))) 6: 00000110 9: 00001001 >>> print(show_bits(23, swap_odd_even_bits(23))) 23: 00010111 43: 00101011