Given a non-negative number n. The problem is to toggle the last m bits in the binary representation of n. A toggle operation flips a bit from 0 to 1 and a bit from 1 to 0.
Constraint: 1 <= m <= n.
Examples:
Input : n = 21, m = 2 Output : 22 (21)10 = (10101)2(22)10 = (10110)2 The last two bits in the binary representation of 21 are toggled. Input : n = 107, m = 4 Output : 100
Approach: Following are the steps:
- Calculate num = (1 << m) – 1. This will produce a number num having m bits and all will be set.
- Now, perform n = n ^ num. This will toggle the last m bits in n.
C++
// C++ implementation to // toggle the last m bits #include <bits/stdc++.h> using namespace std;
// function to toggle // the last m bits unsigned int toggleLastMBits
(unsigned int n, unsigned int m)
{ // calculating a number
// 'num' having 'm' bits
// and all are set.
unsigned int num = (1 << m) - 1;
// toggle the last m bits
// and return the number
return (n ^ num);
} // Driver code int main()
{ unsigned int n = 107;
unsigned int m = 4;
cout << toggleLastMBits(n, m);
return 0;
} |
Java
// Java implementation to // toggle the last m bits import java.util.*;
import java.lang.*;
public class GfG{
// function to toggle
// the last m bits
public static int toggleLastMBits
( int n, int m)
{
// calculating a number
// 'num' having 'm' bits
// and all are set
int num = ( 1 << m) - 1 ;
// toggle the last m bits
// and return the number
return (n ^ num);
}
// Driver function
public static void main(String argc[]){
int n = 107 ;
int m = 4 ;
n = toggleLastMBits(n, m);
System.out.println(n);
}
} // This code is contributed by Sagar Shukla. |
Python3
# Python implementation to # toggle the last m bits # function to toggle # the last m bits def toggleLastMBits(n,m):
# calculating a number
# 'num' having 'm' bits
# and all are set.
num = ( 1 << m) - 1
# toggle the last m bits
# and return the number
return (n ^ num)
# Driver code n = 107
m = 4
print (toggleLastMBits(n, m))
# This code is contributed # by Anant Agarwal. |
C#
// C# implementation to // toggle the last m bits using System;
namespace Toggle
{ public class GFG
{
// Function to toggle the last m bits
public static int toggleLastMBits( int n, int m)
{
// Calculating a number 'num' having
// 'm' bits and all are set
int num = (1 << m) - 1;
// Toggle the last m bits
// and return the number
return (n ^ num);
}
// Driver Code
public static void Main() {
int n = 107, m = 4;
n = toggleLastMBits(n, m);
Console.Write(n);
}
}
} // This code is contributed by Sam007. |
PHP
<?php // PHP implementation to // toggle the last m bits // function to toggle
// the last m bits
function toggleLastMBits( $n , $m )
{
// calculating a number
// 'num' having 'm' bits
// and all are set.
$num = (1 << $m ) - 1;
// toggle the last m bits
// and return the number
return ( $n ^ $num );
}
// Driver code { $n = 107;
$m = 4;
echo toggleLastMBits( $n , $m );
return 0;
} // This code is contributed by nitin mittal. ?> |
Javascript
<script> // Javascript implementation to // toggle the last m bits // function to toggle // the last m bits function toggleLastMBits(n, m)
{ // calculating a number
// 'num' having 'm' bits
// and all are set.
var num = (1 << m) - 1;
// toggle the last m bits
// and return the number
return (n ^ num);
} // Driver code var n = 107;
var m = 4;
document.write( toggleLastMBits(n, m)); </script> |
Output:
100
Time Complexity : O(1)
Auxiliary Space: O(1)
Recommended Articles