VOOZH about

URL: https://www.geeksforgeeks.org/dsa/toggle-bits-given-range/

⇱ Toggle bits in the given range - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Toggle bits in the given range

Last Updated : 1 Apr, 2024

Given a non-negative number n and two values l and r. The problem is to toggle the bits in the range l to r in the binary representation of n, i.e., to toggle bits from the lth least significant bit bit to the rth least significant bit (the rightmost bit as counted as first bit). A toggle operation flips a bit 0 to 1 and a bit 1 to 0.
Constraint: 1 <= l <= r <= number of bits in the binary representation of n.
Examples: 

Input: n = 17, l = 1, r = 3
Output: 22
Explanation:(17)10 = (10001)2
                       (22)10 = (10110)2
The bits in the range 1 to 3 in the binary representation of 17 are toggled.

Input: n = 50, l = 2, r = 5
Output: 44

Explanation:(50)10 = (110010)2
                       (44)10 = (101100)2
The bits in the range 2 to 5 in the binary representation of 50 are toggled.

Recommended Practice


Approach: Following are the steps:

  1. Calculate num as = ((1 << r) - 1) ^ ((1 << (l-1)) - 1) or as ((1 <<r)-l). This will produce a number num having r number of bits and bits in the range l to r (from rightmost end in binary representation) are the only set bits.
  2. Now, perform n = n ^ num. This will toggle the bits in the range l to r in n.

Output
44

Time Complexity: O(1)
Auxiliary Space: O(1)

Approach 2: 
Iterate over the given range from L to R and check if the ith bit is set or not. if the ith bit is set then make it unset otherwise make it set bit.


Output
44

Time Complexity: O(R - L + 1) 
Auxiliary Space: O(1)



Comment
Article Tags:
Article Tags: