什么Java方法需要int
并返回+1或-1?对此的标准是int
是正还是负。我仔细阅读了文档,但我不好读它,我找不到它。我知道我已经在某个地方见过了。
答案 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
。参数:
返回:参数的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 );