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

oracle bitand fungsi

Dalam biner, "set" berarti "memiliki nilai 1". "Tidak disetel" berarti "memiliki nilai 0".

Dari dokumen Oracle untuk BITAND:

"Hasilnya dihitung dalam beberapa langkah. Pertama, setiap argumen A diganti dengan nilai SIGN(A)*FLOOR(ABS(A)). Konversi ini memiliki efek pemotongan setiap argumen menuju nol. Selanjutnya, setiap argumen A (yang harus sekarang menjadi nilai integer) diubah menjadi nilai integer biner komplemen dua n-bit. Kedua nilai bit digabungkan menggunakan operasi AND bitwise. Akhirnya, nilai komplemen dua n-bit yang dihasilkan dikonversi kembali ke NUMBER."

Sederhananya, fungsi ini memotong argumennya, mengubahnya menjadi bilangan biner (saat ini dibatasi hingga 128 bit), AND adalah dua bilangan biner bersama-sama, dan mengembalikan hasil konversi bilangan biner kembali menjadi NUMBER.

Inilah hasil dari semua kemungkinan kombinasi nol dan satu:

SELECT BITAND(0, 0) AS "0, 0",  -- i.e. 0 AND 0 = 0
       BITAND(0, 1) AS "0, 1",  -- i.e. 0 AND 1 = 0
       BITAND(1, 0) AS "1, 0",  -- i.e. 1 AND 0 = 0
       BITAND(1, 1) AS "1, 1"   -- i.e. 1 AND 1 = 1
  FROM DUAL;

Contoh yang lebih kompleks adalah ANDing bersama 11 dan 5. Dalam biner, 11 desimal menjadi "1011". 5 desimal menjadi biner "0101". Jika Anda DAN nilai-nilai ini bersama-sama, seperti pada

1 0 1 1
0 1 0 1
-------
0 0 0 1

Anda mendapatkan 1 biner, yang masih 1 saat dikonversi kembali ke desimal.

Bagikan dan nikmati.




  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 XE 11g database XE tidak ditemukan

  2. Panggil Fungsi Java dari fungsi Oracle

  3. Apakah ada batas bersarang untuk subquery yang berkorelasi di beberapa versi Oracle?

  4. Tambahkan Indikator Ordinal ke Tanggal di Oracle

  5. Melewati parameter input dinamis ke 'eksekusi Segera'