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>
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>
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>
Even
Complejidad de tiempo: O(1)