Encuentre el resto cuando N se divide por 4 usando el operador AND bit a bit

Dado un número N , la tarea es encontrar el resto cuando N se divide por 4 usando el operador AND bit a bit.
Ejemplos: 
 

Input: N = 98 
Output: 2
Explanation: 
98 % 4 = 2. Hence the output is 2.
 
Input: 200
Output: 0
Explanation: 
200 % 4 = 0. Hence output is 0.

Enfoque ingenuo:
para resolver el problema mencionado anteriormente, podemos usar un método ingenuo utilizando el operador Modulo (%) para encontrar el resto. Pero, el operador Modulo es computacionalmente costoso y el método es ineficiente.
Enfoque eficiente:
si observamos cuidadosamente la representación binaria de N y su resto con 4, observamos que el resto son simplemente los dos bits más a la derecha en N. Para obtener los dos bits más a la derecha en el número N, realizamos AND bit a bit (&) con 3 porque 3 en binario es 0011. Para comprender mejor el enfoque, echemos un vistazo a la imagen a continuación:
 

A continuación se muestra la implementación del enfoque anterior: 
 

C

// C implementation to find N
// modulo 4 using Bitwise AND operator
 
#include <stdio.h>
 
// Function to find the remainder
int findRemainder(int n)
{
 
    // Bitwise AND with 3
    int x = n & 3;
 
    // return  x
    return x;
}
 
// Driver code
int main()
{
 
    int N = 43;
    int ans = findRemainder(N);
 
    printf("%d", ans);
 
    return 0;
}

C++

// C++ implementation to find N
// modulo 4 using Bitwise AND operator
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the remainder
int findRemainder(int n)
{
    // Bitwise AND with 3
    int x = n & 3;
 
    // Return  x
    return x;
}
 
// Driver code
int main()
{
 
    int N = 43;
 
    int ans = findRemainder(N);
 
    cout << ans << endl;
 
    return 0;
}

Java

// Java implementation to find N
// modulo 4 using Bitwise AND operator
 
class Main {
 
    // Driver code
    public static void main(String[] args)
    {
 
        int N = 43;
 
        int ans = findRemainder(N);
 
        System.out.println(ans);
    }
 
    // Function to find the remainder
    public static int findRemainder(int n)
    {
        // Bitwise AND with 3
        int x = n & 3;
 
        // return  x
        return x;
    }
}

Python 3

# Python 3 implementation to find N
# modulo 4 using Bitwise AND operator
 
# Function to find the remainder
def findRemainder(n):
    # Bitwise AND with 3
    x = n & 3
 
    # Return  x
    return x
 
# Driver code
if __name__ == '__main__':
    N = 43
 
    ans = findRemainder(N)
 
    print(ans)
     
# This code is contributed by Surendra_Gangwar

C#

// C# implementation to find N
// modulo 4 using Bitwise AND operator
using System;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        int N = 43;
  
        int ans = findRemainder(N);
  
        Console.Write(ans);
    }
  
    // Function to find the remainder
    public static int findRemainder(int n)
    {
        // Bitwise AND with 3
        int x = n & 3;
  
        // return  x
        return x;
    }
}
 
# This code is contributed by chitranayal

Javascript

<script>
 
// Javascript program implementation to find N
// modulo 4 using Bitwise AND operator
 
// Function to find the remainder
    function findRemainder(n)
    {
        // Bitwise AND with 3
        let x = n & 3;
    
        // return  x
        return x;
    }
   
// Driver Code
 
        let N = 43;
   
        let ans = findRemainder(N);
   
        document.write(ans);
 
</script>
Producción: 

3

 

Complejidad de tiempo: O(1)
 

Publicación traducida automáticamente

Artículo escrito por abdul_basith 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 *