PL/SQL中是否有shift
运算符的替代方法?有bitand
函数,但仅接受binary_integer类型的参数。
如果我需要检查真长数字的较低/较高位(可能在行中设置),该怎么办?
在C
中,有<<
和>>
运算符。如何在PL/SQL中实现它们?
最佳答案
以下答案不是与字节序无关的,我的措辞基于小字节序格式...
您可以简单地将参数乘以2(左移)或将参数除以2(右移)以得到x的幂,其中x是要移位的位数。例如,如果我需要将数字(255:11111111)的低位字节向左移16位,我将执行以下操作:
select 255 * power(2,16) from dual;
-- the result will be (16711680:111111110000000000000000)
相反,如果我想将值16711680右移16位,我将执行以下操作:
select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)
关于oracle - PL/SQL中的移位运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/776355/