【Oracle】位运算

1、与 and

 oracle自带函数bitand(int,int) 

select bitand(2,4) from dual;

 2的二进制是0010,4的二进制是0100,与的结果是0

   

2、或 or

 bitor(a,b)=a+b-bitand(a,b)

 建立自定义函数bitor(a,b)

create or replace function bitor(a in int,b in int) 
return int
is 
begin 
return a+b-bitand(a,b);
end;
/
select bitor(2,4) from dual; 

 2的二进制是0010,4的二进制是0100,或的结果是6

3、异或 xor

 bitxor = a+b -2*bitand(a,b)

 建立自定义函数bitxor(a,b)

create or replace function bitxor(a in int ,b in int)
return int
is
begin
     return a+b-2*bitand(a,b);
end;
/
select bitxor(2,10) from dual;

  2的二进制是0010,10的二进制是1010,异或的结果是8

 

参考地址

oracle位运算 : https://blog.csdn.net/xingdavis/article/details/12379385

原文地址:https://www.cnblogs.com/kiko2014551511/p/12874360.html