Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Shift operator di PL/SQL

Jawaban berikut bukan agnostik endianness dan kata-kata saya didasarkan pada format little endian...

Anda dapat menggeser bit hanya dengan mengalikan (menggeser ke kiri) atau membagi (menggeser ke kanan) argumen dengan 2 pangkat x di mana x adalah jumlah bit yang akan digeser. misalnya, jika saya perlu menggeser byte urutan rendah dari suatu angka (255:11111111) 16 bit ke kiri, saya akan melakukan operasi berikut:

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

sebaliknya, jika saya ingin menggeser nilai 16711680 16 bit ke kanan, saya akan melakukan hal berikut:

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. Perintah SQL tidak berakhir dengan benar Pengecualian

  2. PL/SQL menugaskan hasil kueri ke CLOB

  3. VM pengembang Oracle dengan Oracle 11g

  4. Temukan catatan dengan rentang tanggal yang tumpang tindih di SQL

  5. Entitas Basis Data Opsional