Oracle
 sql >> Database >  >> RDS >> Oracle

Operatori di spostamento in PL/SQL

La seguente risposta non è indipendente dall'endianness e la mia formulazione si basa sul formato little endian...

Puoi spostare i bit semplicemente moltiplicando (sposta a sinistra) o dividendo (sposta a destra) l'argomento per 2 alla potenza di x dove x è il numero di bit da spostare. ad esempio, se ho bisogno di spostare il byte di ordine inferiore di un numero (255:11111111) di 16 bit a sinistra, eseguirei la seguente operazione:

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

al contrario, se voglio spostare il valore 16711680 di 16 bit a destra, eseguirei le seguenti operazioni:

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