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

funkce oracle bitand

V binární podobě „set“ znamená „má hodnotu 1“. "Nenastaveno" znamená "má hodnotu 0".

Z dokumentů Oracle pro BITAND:

"Výsledek se vypočítá v několika krocích. Nejprve je každý argument A nahrazen hodnotou SIGN(A)*FLOOR(ABS(A)). Tento převod má za následek zkrácení každého argumentu směrem k nule. Dále každý argument A (který musí now be celočíselná hodnota) se převede na n-bitovou dvojkovou binární celočíselnou hodnotu. Tyto dvě bitové hodnoty se spojí pomocí bitové operace AND. Nakonec se výsledná n-bitová dvojka převede zpět na NUMBER."

Jednoduše řečeno, tato funkce zkrátí své argumenty, převede je na binární číslo (momentálně omezeno na 128 bitů), AND jsou dvě binární čísla dohromady a vrátí výsledek převodu binárního čísla zpět na ČÍSLO.

Zde je výsledek všech možných kombinací nuly a jedničky:

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;

Složitějším příkladem by bylo součinové spojení 11 a 5. V binární soustavě se 11 desítkové stává "1011". 5 desetinných míst se změní na "0101" binární. Pokud A tyto hodnoty dohromady, jako v

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

získáte 1 binární soubor, který je při převodu zpět na desítkové číslo stále 1.

Sdílejte a užívejte si.




  1. Jak mohu vymazat paměť při spuštění dlouhého skriptu PHP? zkusil unset()

  2. PostgreSQL ZOBRAZIT TABULKY Ekvivalent (psql)

  3. Jak získat poslední záznam v každé skupině v MySQL

  4. Nepodařilo se načíst třídu ovladače com.mysql.jdbc.Driver