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

funkcja bitand wyroczni

W binarnym „zestaw” oznacza „ma wartość 1”. „Nie ustawiono” oznacza „ma wartość 0”.

Z dokumentacji Oracle dla BITAND:

„Wynik jest obliczany w kilku krokach. Najpierw każdy argument A jest zastępowany wartością SIGN(A)*FLOOR(ABS(A)). Ta konwersja skutkuje obcięciem każdego argumentu do zera. Następnie każdy argument A (który musi now be a integer) jest konwertowany na binarną wartość dopełnienia n-bitowego do dwóch. Dwie wartości bitowe są łączone za pomocą operacji bitowej AND. Na koniec, wynikowa wartość dopełnienia n-bitowego do dwójki jest konwertowana z powrotem na NUMBER."

Mówiąc prościej, ta funkcja obcina swoje argumenty, konwertuje je na liczbę binarną (obecnie ograniczoną do 128 bitów), AND łączy dwie liczby binarne razem i zwraca wynik konwersji liczby binarnej z powrotem na LICZBĘ.

Oto wynik wszystkich możliwych kombinacji zera i jedynki:

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;

Bardziej złożonym przykładem byłoby połączenie AND 11 i 5. W systemie binarnym 11 dziesiętne daje „1011”. 5 po przecinku staje się binarnym „0101”. Jeśli ORAZ te wartości razem, jak w

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

otrzymujesz 1 binarny, który nadal jest 1 po przekonwertowaniu z powrotem na dziesiętny.

Dziel się i ciesz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chcesz wyświetlać wartości dodatnie i ujemne w różnych kolumnach za pomocą jednego zapytania

  2. Podzapytanie Oracle w słowie kluczowym jest wolne na 12c

  3. Dokumentacja MAA dla Oracle Cloud

  4. jboss 7 konfiguracja źródła danych Oracle

  5. Jak porównać grupy krotek w sql