Oracleのビット単位の排他的OR
-
03-07-2019 - |
質問
SQL Server では ^
シンボルを使用していますが、 Oracle では機能しないようです。
Oracleでビット単位の排他的な OR
を実行するにはどうすればよいですか
解決
ドキュメントから:
function bitor(p1 number, p2 number) return number is
begin
return p1-bitand(p1,p2)+p2;
end;
function bitxor(p1 number, p2 number) return number is
begin
return bitor(p1,p2)-bitand(p1,p2);
end;
これらが機能することを確認するには、入力に0と1のみを使用してロジックを実行します。借用やう蝕はありません。
-MarkusQ
他のヒント
簡単な方法はありません。
文字列 HEX
値を RAW
値にキャストし、 UTL_RAW
を使用できます:
SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual
---
03
所属していません StackOverflow