Какой метод Java принимает int
и возвращает +1 или -1? Критериями этого является то, является ли int
положительным или отрицательным. Я просмотрел документацию, но я плохо читаю ее, и я не могу ее найти. Я знаю, что я где-то видел.
Какой метод Java принимает значение int и возвращает +1 или -1?
Ответ 1
Ответ 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 );