2013-08-16 18 views
5
public static long checkedAdd(long a, long b) { 
    long result = a + b; 
    checkNoOverflow((a^b) < 0 | (a^result) >= 0); 
    return result; 
} 

Tôi quan tâm đến lý do lôgic logic | được sử dụng ở đây. Tại sao không sử dụng mạch có điều kiện ngắn ||?Triển khai lạ Guava LongMath.checkedAdd

+0

Làm thế nào bạn đã viết nó? –

+0

checkNoOverflow ((a^b) <0 || (a^result)> = 0); – ZhekaKozlov

+3

Không phải là không phổ biến trong mã mà muốn tránh phân nhánh vì lý do hiệu suất. – molbdnilo

Trả lời