Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiornare un singolo bit di un numero binario come toggle?

Capovolgere un po' è fatto da XOR ^ operazione con una maschera che ha 1 s nelle posizioni che vorresti cambiare.

Funziona perché la tabella di verità di XOR è simile a questa:

  A: 0 0 1 1
  B: 0 1 0 1
A^B: 0 1 1 0

Nota le colonne dove B è 1 :quando il bit corrispondente in A è zero, il risultato è uno e viceversa.

Il cambio del settimo bit avviene in questo modo:

UPDATE numbers SET numb = numb ^ b'0001000000';