Oracle
 sql >> Base de données >  >> RDS >> Oracle

Opérateurs de décalage en PL/SQL

La réponse suivante n'est pas indépendante de l'endianness et ma formulation est basée sur le petit format endian...

Vous pouvez décaler des bits en multipliant simplement (décalage à gauche) ou en divisant (décalage à droite) l'argument par 2 à la puissance x où x est le nombre de bits à décaler. par exemple, si j'ai besoin de décaler l'octet de poids faible d'un nombre (255:11111111) de 16 bits vers la gauche, j'effectuerais l'opération suivante :

select 255 * power(2,16) from dual;  
-- the result will be (16711680:111111110000000000000000)

à l'inverse, si je veux décaler la valeur 16711680 de 16 bits vers la droite, j'effectuerai ce qui suit :

select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)