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
出处:http://www.zhaiqianfeng.com    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4617830.html