什么Java方法采用int并返回+1或-1?

时间:2010-03-11 17:21:07

标签: java

什么Java方法需要int并返回+1或-1?对此的标准是int是正还是负。我仔细阅读了文档,但我不好读它,我找不到它。我知道我已经在某个地方见过了。

6 个答案:

答案 0 :(得分:60)

答案 1 :(得分:6)

Math.signum(value)会做的伎俩但是因为它返回float或double(根据参数)你将不得不施放它:

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

或:

Integer.signum(value);

答案 2 :(得分:1)

严格评估为-1或1,并且比n < 0 ? -1: 1更冷(也可能更高效):

(n >> 31) | 1

如果您想将其用于long

(n >> 63) | 1

答案 3 :(得分:0)

Math.signum(double i)

返回参数的signum函数;如果参数为零,则返回零;如果参数大于零,则返回1.0;如果参数小于零,则返回-1.0。 特例:

  • 如果参数为NaN,则结果为NaN
  • 如果参数为正零或负零,则结果与参数相同。

参数:

  • d - 要返回其签名的浮点值

返回:参数的signum函数

自:1.5

答案 4 :(得分:0)

使用Integer.signum(int i),但如果您想要自定义内联位代码:

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

如果你想要0:

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

答案 5 :(得分:-1)

为了好玩:

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