Het volgende antwoord is niet endianness-agnostisch en mijn formulering is gebaseerd op het kleine endian-formaat...
U kunt bits verschuiven door eenvoudigweg het argument te vermenigvuldigen (naar links te schuiven) of te delen (naar rechts te verschuiven) door 2 tot de macht van x, waarbij x het aantal bits is dat moet worden verschoven. als ik bijvoorbeeld de lage-orde byte van een getal (255:1111111) 16 bits naar links moet schuiven, zou ik de volgende bewerking uitvoeren:
select 255 * power(2,16) from dual;
-- the result will be (16711680:111111110000000000000000)
omgekeerd, als ik de waarde 16711680 16 bits naar rechts wil verschuiven, zou ik het volgende doen:
select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)