Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Operatory przesunięcia w PL/SQL

Poniższa odpowiedź nie jest agnostyczna dla endianness, a moje sformułowanie jest oparte na formacie little endian...

Możesz przesuwać bity po prostu mnożąc (przesuń w lewo) lub dzieląc (przesuń w prawo) argument przez 2 do potęgi x, gdzie x jest liczbą bitów do przesunięcia. na przykład, jeśli muszę przesunąć mniej znaczący bajt liczby (255:1111111) o 16 bitów w lewo, wykonałbym następującą operację:

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

odwrotnie, jeśli chcę przesunąć wartość 16711680 o 16 bitów w prawo, wykonałbym następujące czynności:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL - Zapytanie do obliczenia wartości z wielu tabel

  2. Autoinkrementacja klucza podstawowego w bazie danych Oracle

  3. Zapytanie łączące wiele tabel w Oracle SQL plus 11g

  4. Narzędzia programistyczne umożliwiające bezpośredni dostęp do baz danych

  5. Instalowanie Oracle 12c Enterprise Edition w systemie Windows 7