PL / sql中是否有替代的移位运算符?有bitand函数,但它只接受binary_integer类型的参数.
如果我需要检查真正长数字的较低/较高位(可能设置在行中),我该怎么办?
在C中有<<和>>操作符.我如何在PL / sql中实现它们?
以下答案不是字节序不可知的,我的措辞是基于小端格式…
您可以简单地将位移位(向左移位)或将参数除(右移)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)