From bd63d489363ea6c0462eedcb2459894b709ce5e9 Mon Sep 17 00:00:00 2001 From: Anshuman Sinha <138311612+anshumansinha3301@users.noreply.github.com> Date: Thu, 17 Jul 2025 16:16:14 +0530 Subject: [PATCH] Create Swap_odd_even_bits.py --- snippets/python/Swap_odd_even_bits.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 snippets/python/Swap_odd_even_bits.py diff --git a/snippets/python/Swap_odd_even_bits.py b/snippets/python/Swap_odd_even_bits.py new file mode 100644 index 0000000..8bd630e --- /dev/null +++ b/snippets/python/Swap_odd_even_bits.py @@ -0,0 +1,13 @@ +def swapOddEvenBits(n): + # 0xAAAAAAAA = 101010...10 (32 bits), mask to extract even-positioned bits + even_bits = n & 0xAAAAAAAA + # 0x55555555 = 010101...01 (32 bits), mask to extract odd-positioned bits + odd_bits = n & 0x55555555 + + # Right shift even bits, left shift odd bits + even_bits >>= 1 + odd_bits <<= 1 + + return even_bits | odd_bits + +print(swapOddEvenBits(23)) # Output would be 43 for input 23 (0b10111 -> 0b101011)