oracle 位操作函式

jidongzheng發表於2011-07-15

bitand

CREATE OR REPLACE FUNCTION bitor (n1 NUMBER, n2 NUMBER) RETURN NUMBER

2 IS
3 n1_tmp NUMBER := trunc(n1);
4 n2_tmp NUMBER := trunc(n2);
5 BEGIN
6 RETURN n1_tmp + n2_tmp - bitand(n1_tmp, n2_tmp);
7 END;
8 /
-----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION bitxor (n1 NUMBER, n2 NUMBER) RETURN NUMBER
2 IS
3 n1_tmp NUMBER := trunc(n1);
4 n2_tmp NUMBER := trunc(n2);
5 BEGIN
6 RETURN n1_tmp + n2_tmp - bitand(n1_tmp, n2_tmp)*2;
7 END;
8 /
[@more@]

示例:

select bitxor(6,13) from dual;

BITXOR(6,13)
------------
11
select bitor(6,13) from dual;
BITOR(6,13)
-----------
15
select bitand(6,13) from dual;
BITAND(6,9)
-----------
4

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/197458/viewspace-1052517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章