signo quitar positivos positivo numeros numero negativos negativo matematicas leer declarar convertirlos convertir como java math

quitar - Función matemática Java para convertir positivo int a negativo y negativo a positivo?



numero negativos en java (10)

¿Hay una función de Java para convertir un int positivo a uno negativo y un int negativo a uno positivo?

Estoy buscando una función reverse para realizar esta conversión:

-5 -> 5 5 -> -5


¿Qué pasa con x *= -1; ? ¿Realmente quieres una función de biblioteca para esto?


Nigromancia aquí.
Obviamente, x *= -1; es demasiado simple

En cambio, podríamos usar un complemento binario trivial:

number = ~(number - 1) ;

Me gusta esto:

import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { int iPositive = 15; int iNegative = ( ~(iPositive - 1) ) ; // Use extra brackets when using as C preprocessor directive ! ! !... System.out.println(iNegative); iPositive = ~(iNegative - 1) ; System.out.println(iPositive); iNegative = 0; iPositive = ~(iNegative - 1); System.out.println(iPositive); } }

De esa forma podemos asegurarnos de que los programadores mediocres no entiendan lo que está pasando;)


No existe tal función o es posible escribir.

El problema es el caso de borde Integer.MIN_VALUE (-2,147,483,648 = 0x80000000) aplica cada uno de los tres métodos anteriores y obtienes el mismo valor. Esto se debe a la representación de enteros y al número entero máximo posible Integer.MAX_VALUE (-2,147,483,647 = 0x7fffffff) que es uno menos de lo que debería ser -Integer.MIN_VALUE.


Otro método (complemento de 2):

public int reverse(int x){ x~=x; x++; return x; }

Hace primero un complemento (complementando todos los bits) y luego agrega 1 a x. Este método también hace el trabajo.

Nota: Este método está escrito en Java y será similar a muchos otros idiomas


Puede usar el operador menos o Math.abs. ¡Funcionan para todos los enteros negativos, EXCEPTO para Integer.MIN_VALUE! Si haces 0 - MIN_VALUE, la respuesta sigue siendo MIN_VALUE.


Puedes usar Matemáticas:

int x = Math.abs(-5);


Sí, como ya señaló Jeffrey Bosboom (Lo siento, Jeffrey, no había notado tu comentario cuando respondí), existe una función Math.negateExact : Math.negateExact .

y

No, probablemente no deberías estar usándolo. No, a menos que necesite una referencia de método .


Solo use el operador unario negativo :

int x = 5; ... x = -x; // Here''s the mystery library function - the single character "-"

Java tiene dos operators menos:

  • la versión aritmética familiar (por ejemplo, 0 - x ) y
  • la operación unaria minus (usada aquí), que niega el operando (único)

Esto compila y funciona como se esperaba.


original * = -1;

Línea de código simple, original es cualquier int que desee que sea.


x = -x;

Esta es probablemente la pregunta más trivial que he visto en mi vida.

... y por qué llamarías a esta función trivial ''reverse ()'' es otro misterio.