Skip to content

Commit

Permalink
solve replace bits challenge in python
Browse files Browse the repository at this point in the history
  • Loading branch information
justanindieguy committed Jan 30, 2023
1 parent bd91879 commit 371f2b8
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions Bit-manipulationTechniques/ReplaceBitsChallenge/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
def clear_bits_in_range(n: int, i: int, j: int):
a = (-1) << (j + 1)
b = (1 << i) - 1
mask = a | b
return n & mask


def replace_bits_in_range(n: int, m: int, i: int, j: int):
n = clear_bits_in_range(n, i, j)
mask = m << i
return n | mask


def main():
n, m, i, j = 512, 21, 2, 6

n = replace_bits_in_range(n, m, i, j)
print(n)


if __name__ == "__main__":
main()

0 comments on commit 371f2b8

Please sign in to comment.