Aquí, la tarea es verificar si el número entero dado es positivo o negativo. A continuación se presentan algunas propiedades básicas de un número.
- Si el número entero es mayor que cero, entonces es un número entero positivo.
- Si el número es menor que cero, entonces es un entero negativo.
- Si el número es igual a cero, entonces no es ni negativo ni positivo.
Input: X = 12 Output: Positive Explanation: Value of X is greater than 0 so it is Positive. Input: x = -5 Output: Negative Explanation: Value of X less than 0 so it is negative.
Enfoque 1: al usar el operador relacional, podemos verificar si un número entero es positivo o negativo.
- Si número>0 entonces el número es positivo.
- Si el número <0, entonces el número es negativo.
- Si un número no es ni positivo ni negativo, el número es igual a 0.
A continuación se muestra la implementación de Java del enfoque anterior:
Java
// Java Program to Check if a Given Integer // is Positive or Negative import java.io.*; class GFG { // Function to check positive and negative static String checkPosNeg(int x) { // checks the number is greater than 0 or not if (x > 0) return "Positive"; else if (x < 0) return "Negative"; else return "zero"; } // Driver Function public static void main(String[] args) { // number to be check int firstNumber = 912; System.out.println(firstNumber + " is " + checkPosNeg(firstNumber)); } }
912 is Positive
Enfoque 2: Usar el método Integer.signum()
La clase Java Integer proporciona una función incorporada signum() para verificar si un número es positivo o negativo. Es un método estático que acepta un parámetro de tipo entero.
- Devuelve 0, si el argumento es 0.
- Devuelve 1, si el argumento >0.
- Devuelve -1, si el argumento <0.
Sintaxis:
public static int signum(int i)
A continuación se muestra la implementación de Java del método anterior.
Java
// Java Program to Check if a Given // Integer is Positive or Negative import java.io.*; class GFG { // Function to check number is positive or negative static int checkPosNeg(int x) { // inbuilt signum function int ans = Integer.signum(x); return ans; } // Driver function public static void main(String[] args) { int secondNumber = -125; int result = checkPosNeg(secondNumber); if (result == 0) System.out.print(secondNumber + " is Zero"); else if (result == 1) System.out.print(secondNumber + " is Positive"); else System.out.print(secondNumber + " is Negative"); } }
-125 is Negative
Enfoque 3: Uso del operador Bit Shift
En Java, los números enteros se almacenan en complemento a 2. Sabemos que el bit más alto de cualquier número negativo es 1 y el bit más alto de cualquier otro número es 0.
El operador de cambio de bit (Val>>31) copia el bit más alto a cada otro bit. Por lo tanto, el número negativo se convierte en 11111111 11111111 11111111 11111111, y los números positivos o cero se convierten en 00000000 00000000 00000000 00000000.
Después de esto, podemos usar el operador & para verificar si un número es positivo o negativo.
- Si ((Val>>31) & 1) es 1, entonces el número será negativo.
- Si ((Val>>31) & 1) es 0, entonces el número será positivo.
Nota: Considera el 0 como un número positivo.
A continuación se muestra la implementación de Java del enfoque anterior:
Java
// Java Program to Check if a Given // Integer is Positive or Negative import java.io.*; class GFG { // function to check positive and negative integer static String checkPosNeg(int val) { String[] result = { "Positive", "Negative" }; // checks if the number is positive or negative return result[(val >> 31) & 1]; } public static void main(String[] args) { int num; num = -15; System.out.println(num + " is " + checkPosNeg(num)); } }
-15 is Negative
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