【发布时间】:2013-08-16 12:52:11
【问题描述】:
public static long checkedAdd(long a, long b) {
long result = a + b;
checkNoOverflow((a ^ b) < 0 | (a ^ result) >= 0);
return result;
}
我很感兴趣为什么布尔逻辑 |在这里使用。为什么不使用条件短路||?
【问题讨论】:
-
你会怎么写?
-
checkNoOverflow((a ^ b) = 0);
-
出于性能原因想要避免分支的代码中并不少见。
标签: java guava long-integer integer-overflow