Oracle中的位运算以及推导公式

Oracle中只有位余运算:BITAND,表示返回两个数值型数值在按位进行 AND 运算后的结果。

语法:BITAND(nExpression1, nExpression2)
BITAND将 nExpression1 的每一位同 nExpression2 的相应位进行比较。如果 nExpression1 和 nExpression2 的位都是 1,相应的结果位就是 1;否则相应的结果位是 0。

例如:

select bitand(0,0) from dual --0
select bitand(1,0) from dual --0
select bitand(0,1) from dual --0
select bitand(1,1) from dual --1

其实一说位运算大家就会想到位与、位异、位异或,但oracle本身没有bitor,bitxor函数的。

不过可以利用bitand来转换:

BITOR(x,y) = (x + y) - BITAND(x, y)
BITXOR(x,y) = BITOR(x,y) - BITAND(x,y) = (x + y) - BITAND(x, y) * 2
posted @ 2012-10-25 16:15  码农神说  阅读(395)  评论(0编辑  收藏  举报