ce sont des opérations au niveau du bit, et ~ est inverse.
3 is the same as 0011 in binary, and inverse of that is 1100
2 is the same as 0010 in binary, and inverse of that is 1101
5 is the same as 0101 in binary, and inverse of that is 1010
10 is the same as 1010 in binary.
10 & ~3 => 1010 & 1100 = 1000 => 8
10 & ~5 => 1010 & 1010 = 1010 => 10
10 & ~2 => 1010 & 1101 = 1000 => 8
au niveau du bit est le bit pour bit
on peut penser en décimal aussi, mais il faut avoir votre état d'esprit en binaire et (séquence 1, 2, 4, 8, 16, 32, 64 , 128 ...). 10 consistent en "8 | 2" et 3 sont constitués de "1 | 2". L'inverse de 3 est tout sauf "1 | 2". La partie commune entre 10 et 3 est 2 donc vous aurez toutes les parties de 10 qui ne sont pas dans 3, nous donnant ainsi 8.
Merci Lostfields. – Nolimits