【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

posted @ 2020-05-12 10:22  harara  阅读(1287)  评论(0)    收藏  举报