and,or,et xor sont des opérateurs "bits à bits", c'est-à-dire qu'il faut appliquer les règles sur ls bits de même ordre de chaque opérande.
Pour chaque bit tu fais :
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
Mais ça n'empêche pas de travailler avec des entiers. Il faut simplement garder à l'esprit que les opérations sont au niveau du bit. Par exemple (en représentation Intel) quand tu fais :
12 OR 7 <==> 1100 OR 0111 = 1111
12 AND 7 <==> 1100 AND 0111 = 0100
12 XOR 7 <==> 1100 XOR 0111 = 1011
Pour not, tu obtiens tous les bits inversés.
not 12 <==> not 1100 = 0011
not 7 <==> not 0111 = 1000
Pour neg, ca dépend du processeur. Ca transforme un nombre en son opposé.
neg 12 = -12
neg -7 = 7
Mais la représentation en binaire des nombres négatifs varie suivant le processeur.