Skip to content

Commit ccccc95

Browse files
authored
Update swap_all_odd_and_even_bits.py
1 parent 4c8e3fd commit ccccc95

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed
Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
def show_bits(before: int, after: int) -> str:
2-
return f"{before}: {before:08b}\n{after}: {after:08b}"
2+
"""
3+
>>> print(show_bits(0, 0xFFFF))
4+
0: 00000000
5+
65535: 1111111111111111
6+
"""
7+
return f"{before:>5}: {before:08b}\n{after:>5}: {after:08b}"
38

49

510
def swap_odd_even_bits(num: int) -> int:
@@ -11,29 +16,29 @@ def swap_odd_even_bits(num: int) -> int:
1116
3. Finally, we combine the swapped even and odd bits using a bitwise OR operation
1217
to obtain the final result.
1318
>>> print(show_bits(0, swap_odd_even_bits(0)))
14-
0: 00000000
15-
0: 00000000
19+
0: 00000000
20+
0: 00000000
1621
>>> print(show_bits(1, swap_odd_even_bits(1)))
17-
1: 00000001
18-
2: 00000010
22+
1: 00000001
23+
2: 00000010
1924
>>> print(show_bits(2, swap_odd_even_bits(2)))
20-
2: 00000010
21-
1: 00000001
25+
2: 00000010
26+
1: 00000001
2227
>>> print(show_bits(3, swap_odd_even_bits(3)))
23-
3: 00000011
24-
3: 00000011
28+
3: 00000011
29+
3: 00000011
2530
>>> print(show_bits(4, swap_odd_even_bits(4)))
26-
4: 00000100
27-
8: 00001000
31+
4: 00000100
32+
8: 00001000
2833
>>> print(show_bits(5, swap_odd_even_bits(5)))
29-
5: 00000101
30-
10: 00001010
34+
5: 00000101
35+
10: 00001010
3136
>>> print(show_bits(6, swap_odd_even_bits(6)))
32-
6: 00000110
33-
9: 00001001
37+
6: 00000110
38+
9: 00001001
3439
>>> print(show_bits(23, swap_odd_even_bits(23)))
35-
23: 00010111
36-
43: 00101011
40+
23: 00010111
41+
43: 00101011
3742
"""
3843
# Get all even bits - 0xAAAAAAAA is a 32-bit number with all even bits set to 1
3944
even_bits = num & 0xAAAAAAAA
@@ -50,4 +55,4 @@ def swap_odd_even_bits(num: int) -> int:
5055

5156
doctest.testmod()
5257
for i in (-1, 0, 1, 2, 3, 4, 23, 24):
53-
print(show_bits(i, swap_odd_even_bits(i)), "\n")
58+
print(show_bits(i, swap_odd_even_bits(i)), '\n')

0 commit comments

Comments
 (0)