Friday, June 23, 2006

[P] Bitové operácie v MySQL

Ukážkový prepis čísel z 10-kovej do 2-kovej sústavy:

0 = 0000 
1 = 0001
2 = 0010
3 = 0011
4 = 0100
.......
8 = 1000

Nastavenie bitu na 1:
cislo | 2^poradie_bitu ( poradie bitu číslované od 0 )
Príklad nastavenia 3. bitu
UPDATE table SET col=col | 4

Nastavenie bitu na 0:
cislo & ~(2^poradie_bitu) kde ~ je negácia
Príklad nastavenia 3. bitu:
UPDATE table SET col=col & ~4

Zistenie hodnoty bitu:
ak výsledok operácie cislo & 2^poradie_bitu je 0 potom je hodnota bitu 0 inak 1
Príklad výberu záznamov kde je 3. bit nastavený na 1:
SELECT * FROM table WHERE col & 4

Zvolením iného čísla než mocniny 2 môžme nastavovať, negovať či kontrolovať viac bitov naraz.
Napr. použitím 5 = 0101 môžme pracovať s 1. a 3. bitom

No comments: