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:
- Calcule num = (1 << m) – 1. Esto producirá un número num que tiene m bits y todo estará configurado.
- 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