Какой метод Java принимает значение int и возвращает +1 или -1?

Какой метод Java принимает int и возвращает +1 или -1? Критериями этого является то, является ли int положительным или отрицательным. Я просмотрел документацию, но я плохо читаю ее, и я не могу ее найти. Я знаю, что я где-то видел.

Ответ 2

Math.signum(value) выполнит трюк, но поскольку он возвращает float или double (в соответствии с параметром), вам нужно будет его выполнить:

int sign = (int)Math.signum(value);

EDIT: только что проверено, из JDK 1.5 у вас также есть:

Integer.signum(value);

Ответ 3

Строго оценивая -1 или 1 и кулер (возможно, более эффективный), чем n < 0 ? -1: 1:

(n >> 31) | 1

Если вы хотите использовать его для long тоже:

(n >> 63) | 1

Ответ 4

Math.signum(double i)

Возвращает функцию signum аргумента; ноль, если аргумент равен нулю, 1.0, если аргумент больше нуля, -1.0, если аргумент меньше нуля. Специальные случаи:

  • Если аргумент NaN, то результат NaN.
  • Если аргумент положительный или отрицательный, то результат будет таким же, как и аргумент.

Параметры:

  • d - значение с плавающей запятой, чей знак должен быть возвращен

Возвращает: Функция signum аргумента

Так как: 1.5

Ответ 5

Используйте Integer.signum(int i), но если вы хотите создать собственный встроенный бит кода:

int ans = i < 0 ? -1 : 1;

если вы также хотите 0:

int ans = i == 0 ? 0 : (i < 0 ? -1 : 1);

Ответ 6

Для удовольствия:

return (i > 0) ? 1 : ( (i < 0) ? -1 : 0 );