Comprobar si un número es par o impar usando operadores bit a bit

Dado un número N , la tarea es verificar si el número es par o impar usando operadores bit a bit .
Ejemplos: 
 

Entrada: N = 11 
Salida: Impar
Entrada: N = 10 
Salida: Par 
 

Los siguientes operadores bit a bit se pueden utilizar para comprobar si un número es par o impar:
 

1. Uso del operador Bitwise XOR : 
la idea es verificar si el último bit del número está configurado o no. Si se establece el último bit, el número es impar; de lo contrario, es par. 
Como sabemos, la operación XOR bit a bit del número en 1 incrementa el valor del número en 1 si el número es par; de lo contrario, disminuye el valor del número en 1 si el valor es impar.

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

C++

// C++ program to check for even or odd
// using Bitwise XOR operator
 
#include <iostream>
using namespace std;
 
// Returns true if n is even, else odd
bool isEven(int n)
{
 
    // n^1 is n+1, then even, else odd
    if (n ^ 1 == n + 1)
        return true;
    else
        return false;
}
 
// Driver code
int main()
{
    int n = 100;
    isEven(n)
? cout << "Even"
: cout << "Odd";
 
    return 0;
}

Java

// Java program to check for even or odd
// using Bitwise XOR operator
class GFG
{
 
    // Returns true if n is even, else odd
    static boolean isEven(int n)
    {
 
        // n^1 is n+1, then even, else odd
        if ((n ^ 1) == n + 1)
            return true;
        else
            return false;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int n = 100;
        System.out.print(isEven(n) == true ? "Even" : "Odd");
    }
}
 
// This code is contributed by Rajput-Ji

Python3

# Python3 program to check for even or odd
# using Bitwise XOR operator
 
# Returns true if n is even, else odd
def isEven( n) :
 
    # n^1 is n+1, then even, else odd
    if (n ^ 1 == n + 1) :
        return True;
    else :
        return False;
 
# Driver code
if __name__ == "__main__" :
    n = 100;
    print("Even") if isEven(n) else print( "Odd");
 
# This code is contributed by AnkitRai01

C#

// C# program to check for even or odd
// using Bitwise XOR operator
using System;
 
class GFG
{
 
    // Returns true if n is even, else odd
    static bool isEven(int n)
    {
 
        // n^1 is n+1, then even, else odd
        if ((n ^ 1) == n + 1)
            return true;
        else
            return false;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        int n = 100;
        Console.Write(isEven(n) == true ? "Even" : "Odd");
    }
}
 
// This code is contributed by Rajput-Ji

Javascript

<script>
 
// JavaScript program to check for even or odd
// using Bitwise XOR operator
 
// Returns true if n is even, else odd
function isEven(n)
{
 
    // n^1 is n+1, then even, else odd
    if (n ^ 1 == n + 1)
        return true;
    else
        return false;
}
 
// Driver code
 
    let n = 100;
    isEven(n)
? document.write("Even")
: document.write("Odd");
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Producción

Even

2. Uso del operador AND bit a bit: 
la idea es verificar si el último bit del número está configurado o no. Si se establece el último bit, el número es impar; de lo contrario, es par.
Como sabemos, la operación AND bit a bit del número por 1 será 1, si es impar porque el último bit ya estará establecido. De lo contrario, dará 0 como salida. 

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

C++

// C++ program to check for even or odd
// using Bitwise AND operator
#include <iostream>
using namespace std;
   
// Returns true if n is even, else odd
bool isEven(int n)
{
    // n&1 is 1, then odd, else even
    return (!(n & 1));
}
   
// Driver code
int main()
{
    int n = 101;
    isEven(n)
    ? cout << "Even"
    : cout << "Odd";
    return 0;
}

Java

// Java program to check for even or odd
// using Bitwise AND operator
class GFG
{
     
// Returns true if n is even, else odd
static boolean isEven(int n)
{
    // n&1 is 1, then odd, else even
    return ((n & 1)!=1);
}
     
// Driver code
public static void main(String[] args)
{
    int n = 101;
    System.out.print(isEven(n) == true ? "Even" : "Odd");
}
}
 
// This code is contributed by PrinciRaj1992

Python3

# Python3 program to check for even or odd
# using Bitwise AND operator
 
# Returns true if n is even, else odd
def isEven(n) :
 
    # n&1 is 1, then odd, else even
    return (not(n & 1));
 
# Driver code
if __name__ == "__main__" :
 
    n = 101;
    if isEven(n) :
        print("Even")
    else:
        print("Odd");
 
# This code is contributed by AnkitRai01

C#

// C# program to check for even or odd
// using Bitwise AND operator
using System;
 
class GFG
{
     
    // Returns true if n is even, else odd
    static bool isEven(int n)
    {
        // n&1 is 1, then odd, else even
        return ((n & 1) != 1);
    }
         
    // Driver code
    public static void Main()
    {
        int n = 101;
        Console.Write(isEven(n) == true ? "Even" : "Odd");
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
// javascript program to check for even or odd
// using Bitwise AND operator
  
     
// Returns true if n is even, else odd
function isEven(n)
{
    // n&1 is 1, then odd, else even
    return ((n & 1)!=1);
}
     
// Driver code
var n = 101;
document.write(isEven(n) == true ? "Even" : "Odd");
 
// This code is contributed by Princi Singh
</script>
Producción

Odd

3. Uso del operador OR bit a bit:  la idea es verificar si el último bit del número está configurado o no. Si se establece el último bit, el número es impar; de lo contrario, es par. Como sabemos, la operación OR bit a bit del número en 1 incrementa el valor del número en 1 si el número es par; de lo contrario, permanecerá sin cambios. Entonces, si después de la operación OR del número con 1 da un resultado que es mayor que el número, entonces es par y devolveremos verdadero; de lo contrario, es impar y devolveremos falso.

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

C++

// C++ program to check for even or odd
// using Bitwise OR operator
 
#include <iostream>
using namespace std;
 
// Returns true if n is even, else odd
bool isEven(int n)
{
 
    // n|1 is greater than n, then even, else odd
    if ((n | 1) > n)
        return true;
    else
        return false;
}
 
// Driver code
int main()
{
    int n = 100;
    isEven(n)
    ? cout << "Even"
    : cout << "Odd";
 
    return 0;
}

Java

// Java program to check for even or odd
// using Bitwise OR operator
class GFG
{
    // Returns true if n is even, else odd
    static boolean isEven(int n)
    {
 
        // n|1 is greater than n, then even, else odd
        if ((n | 1) > n)
            return true;
        else
            return false;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int n = 100;
        System.out.print(isEven(n) == true ? "Even" : "Odd");
    }
}

Python3

# Python3 program to check for even or odd
# using Bitwise OR operator
 
# Returns true if n is even, else odd
def isEven( n) :
 
    # n|1 is greater then n, then even, else odd
    if (n | 1 > n) :
        return True;
    else :
        return False;
 
# Driver code
if __name__ == "__main__" :
    n = 100;
    print("Even") if isEven(n) else print( "Odd");

C#

// C# program to check for even or odd
// using Bitwise XOR operator
using System;
 
class GFG
{
 
    // Returns true if n is even, else odd
    static bool isEven(int n)
    {
 
        // n|1 is greater then n, then even, else odd
        if ((n | 1) > n)
            return true;
        else
            return false;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        int n = 100;
        Console.Write(isEven(n) == true ? "Even" : "Odd");
    }
}
 
// This code is contributed by Rajput-Ji

Javascript

<script>
// javascript program to check for even or odd
// using Bitwise OR operator
 
// Returns true if n is even, else odd
function isEven(n)
{
 
    // n|1 is greater than n, then even, else odd
    if ((n | 1) > n)
        return true;
    else
        return false;
}
 
// Driver code
var n = 100;
document.write(isEven(n) == true ? "Even" : "Odd");
 
// This code is contributed by Amit Katiyar.
</script>
Producción

Even

Complejidad de tiempo: O(1)

Publicación traducida automáticamente

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