码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-11-05 12:15:40      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:net   row   stat   bsp   title   size   out   .net   href   

 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) 

 

按位或运算大家都知道,所以如果有一个数是负数,则结果也是负数。

 

如果有对按位或运算(|)不清楚的,可以参看这篇文章

 

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

标签:net   row   stat   bsp   title   size   out   .net   href   

原文地址:http://www.cnblogs.com/zawier/p/6031384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!