Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Operadores de deslocamento em PL/SQL


A resposta a seguir não é agnóstica de endian e minha redação é baseada no formato little endian ...

Você pode deslocar bits simplesmente multiplicando (deslocamento para a esquerda) ou dividindo (deslocamento para a direita) o argumento por 2 à potência de x onde x é o número de bits a serem deslocados. por exemplo, se eu precisar deslocar o byte de ordem inferior de um número (255:11111111) 16 bits para a esquerda, eu realizaria a seguinte operação:
select 255 * power(2,16) from dual;  
-- the result will be (16711680:111111110000000000000000)

por outro lado, se eu quiser deslocar o valor 16711680 16 bits para a direita, eu faria o seguinte:
select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)