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

Skift operatører i PL/SQL

Det følgende svar er ikke endianness agnostisk, og min formulering er baseret på little endian format...

Du kan flytte bits ved blot at multiplicere (skift til venstre) eller dividere (skift til højre) argumentet med 2 i potensen af ​​x, hvor x er antallet af bit, der skal forskydes. for eksempel, hvis jeg skal flytte lavordens byte af et tal (255:11111111) 16 bit til venstre, vil jeg udføre følgende operation:

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

omvendt, hvis jeg vil flytte værdien 16711680 16 bit til højre, vil jeg udføre følgende:

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


  1. MySQL match mod med flere værdier til MOD

  2. Hvordan optimerer man denne MySQL-forespørgsel? Millioner af rækker

  3. Sådan genereres denne SQL-forespørgsel som pivottabel

  4. Slet erklæring var meget langsom i Oracle