|
6 | 6 | """ |
7 | 7 |
|
8 | 8 |
|
9 | | -def swap_bits(number: int, i: int, j: int) -> int: |
| 9 | +def swap_bits(number: int, first: int, second: int) -> int: |
10 | 10 | """ |
11 | | - Swap the bits at the position i and j (0-indexed from right side) |
| 11 | + Swap the bits at the position first and second (0-indexed from right side) |
12 | 12 |
|
13 | 13 | Arguments: |
14 | 14 | number (int): Non-negative integer whose bits are to be swapped. |
15 | | - i (int): Index of 1st bit to swap. |
16 | | - j (int): Index of 2nd bit to swap. |
| 15 | + first (int): Index of 1st bit to swap. |
| 16 | + second (int): Index of 2nd bit to swap. |
17 | 17 |
|
18 | 18 | Returns: |
19 | 19 | int: Integer obtained after swapping of bits. |
@@ -42,22 +42,22 @@ def swap_bits(number: int, i: int, j: int) -> int: |
42 | 42 | ... |
43 | 43 | ValueError: Bit positions MUST be non-negative! |
44 | 44 | """ |
45 | | - if not all(isinstance(x, int) for x in (number, i, j)): |
| 45 | + if not all(isinstance(x, int) for x in (number, first, second)): |
46 | 46 | raise TypeError("All arguments MUST be integers!") |
47 | 47 |
|
48 | 48 | if number < 0: |
49 | 49 | raise ValueError("The number MUST be non-negative!") |
50 | 50 |
|
51 | | - if i < 0 or j < 0: |
| 51 | + if first < 0 or second < 0: |
52 | 52 | raise ValueError("Bit positions MUST be non-negative!") |
53 | 53 |
|
54 | 54 | # Extraction of Bits |
55 | | - bit_first = (number >> i) & 1 |
56 | | - bit_second = (number >> j) & 1 |
| 55 | + bit_first = (number >> first) & 1 |
| 56 | + bit_second = (number >> second) & 1 |
57 | 57 |
|
58 | 58 | # If bits differ swap them |
59 | 59 | if bit_first != bit_second: |
60 | | - number ^= (1 << i) | (1 << j) |
| 60 | + number ^= (1 << first) | (1 << second) |
61 | 61 |
|
62 | 62 | return number |
63 | 63 |
|
|
0 commit comments