sql >> Databáze >  >> RDS >> Oracle

Shift operátory v PL/SQL

Následující odpověď není endianness agnostická a moje formulace je založena na formátu little endian...

Můžete posouvat bity jednoduše násobením (posun doleva) nebo dělením (posun doprava) argumentem 2 na mocninu x, kde x je počet bitů, které se mají posunout. pokud například potřebuji posunout bajt nižšího řádu čísla (255:11111111) o 16 bitů doleva, provedl bych následující operaci:

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

naopak, pokud chci posunout hodnotu 16711680 o 16 bitů doprava, provedl bych následující:

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


  1. Jak monitorovat výkon PostgreSQL 12 pomocí OmniDB – část 2

  2. Získejte ID vloženého řádku pomocí C#

  3. Vytvořte kopii testovací databáze Production pouze s ukázkovou sadou dat

  4. Plně dynamický dotaz na databázi místností