pirmdiena, 2011. gada 7. novembris

Būla algebra SQL Server

Par līdzīgu tēmu jau vienreiz rakstīju (Bitwise OR, jeb kā caur vienu parametru var padot vairākas vērtības). Šajā rakstā Būla algebra iekš SQL Server.

Tātad, iespējamās darbības SQL Server (par operatoriem: msdn; par Būla algebru: wikipēdija) :
  • & loģiskais UN (AND)
  • | loģiskais VAI (OR)
  • ^ izslēdzošais VAI (XOR)
  • ~ negācija (NOT)
Sākot ar SQL Server 2008, papildus iespējams izmantot arī šādas konstrukcijas:
  • &=
  • |=
  • ^=
Piemēram:
  • A &= B ir tas pats, kas A = A & B
  • A |= B ir tas pats, kas A = A | B
Vēl ir jautājums, kā pārnest vērtības pa labi vai pa kreisi (left shift/right shift, c++ tas būtu >> vai <<). Piemēram "0110" pārnesot pa kreisi iegūt "1100" vai pārnesot pa labi- ''0011".

Ideja pavisam vienkārša- reizināt vai dalīt ar 2 (bez atlikuma) katru reizi, kad vajag bitu pārnest pa kreisi vai pa labi attiecīgi.
  • Bināri "0110" ir tas pats, kas 6;
    6/2 = 3 (tātad "0011", biti pārnesti vienu zīmi pa labi)
  • Bināri "0110" ir tas pats, kas 6;
    6/4 = 1 (tātad "0001", biti pārnesti divas zīmes pa labi)
  • Bināri "0110" ir tas pats, kas 6;
    6*2= 12 (tātad "1100", biti pārnesti vienu zīmi pa lkreisi)

Nav komentāru:

Komentāra publicēšana