Alternar los últimos m bits

Dado un número no negativo n . El problema es alternar los últimos m bits en la representación binaria de n . Una operación de alternar cambia un bit de 0 a 1 y un bit de 1 a 0 .
Restricción: 1 <= m <= n.

Ejemplos: 

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 

Enfoque: Los siguientes son los pasos: 

  1. Calcule num = (1 << m) – 1. Esto producirá un número num que tiene m bits y todo estará configurado.
  2. Ahora, realice n = n ^ num . Esto alternará los últimos m bits en 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>

Producción: 

100

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

Este artículo es una contribución de Ayush Jauhari . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *