您的位置:首页 > 其它

按位或运算的一种应用方式

2016-11-05 10:57 204 查看
java.nio.Buffer.java源码中有如下代码:

static void checkBounds(int off, int len, int size) {
if ((off | len | (off + len) | (size - (off + len))) < 0)
throw new IndexOutOfBoundsException();
}




if ((off | len | (off + len) | (size - (off + len))) < 0)


很好奇,如果我自己写,可能会写成

if (off < 0 || len < 0 || (off + len) < 0 || (size- (off + len)) < 0)


按位或运算,所以如果有一个数是负数,则结果也是负数,所以以上两种写法相同,不过第一种看起来更简单一些。

如果有对按位或运算(|)不清楚的,可以参看这篇文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐