Die folgende Antwort ist nicht Endian-agnostisch und meine Formulierung basiert auf dem Little-Endian-Format ...
Sie können Bits verschieben, indem Sie einfach das Argument mit 2 hoch x multiplizieren (nach links verschieben) oder dividieren (nach rechts verschieben), wobei x die Anzahl der zu verschiebenden Bits ist. Wenn ich beispielsweise das niederwertige Byte einer Zahl (255:11111111) um 16 Bit nach links verschieben muss, würde ich die folgende Operation ausführen:
select 255 * power(2,16) from dual;
-- the result will be (16711680:111111110000000000000000)
Umgekehrt, wenn ich den Wert 16711680 um 16 Bit nach rechts verschieben möchte, würde ich Folgendes ausführen:
select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)