1

Je viens de commencer à apprendre sur le fonctionnement bit par bit et je veux demander pourquoi et 1 (& 1) bitwise retourne toujours 0 ou 1.Pourquoi et 1 (et 1) opération bitwise retourne toujours 0 ou 1

+3

Qu'entendez-vous par "opération de bit 1 (& 1)"? – BoltClock

+0

Je veux dire n'importe quel nombre quand et avec 1 juste retourner la valeur 0 ou 1 (a & 1) –

+1

Qu'attendez-vous qu'il retourne? 'x & 1' renvoie' 1' si le bit le moins significatif de 'x' est' 1' sinon '0'. '1 & 1 = 1',' 0 & 1 = 0'. C'est ainsi que l'opérateur est défini. –

Répondre

6
0 & 0 === 0 
0 & 1 === 0 
1 & 0 === 0 
1 & 1 === 1 

donc un nombre & 1 aura toujours 0 ou 1

en binaire ... un nombre

xxxxxxxxxxxxx0 

ou

xxxxxxxxxxxxx1 

où x peut être 0 ou 1

1 en binaire est

00000000000001 

si

xxxxxxxxxxxxx1 & 
00000000000001 == 
00000000000001 

xxxxxxxxxxxxx0 & 
00000000000001 == 
00000000000000 
0

Lorsque vous effectuez a & 1 il vaudra toujours 0 ou 1 en fonction du dernier chiffre binaire d'un.

Règles:

0 & 0 = 0 
0 & 1 = 0 
1 & 1 = 1 

Par exemple:

a = 5 //5 = 0101 
b = a & 1 = 1 //(0101 & 0001) 


a = 6 //6 = 0110 
b = a & 1 = 0 //(0110 & 0001) 
0

Ceci est une opération de bit. Supposons que vous preniez 2 & 1. Ce serait 10 et 01 en binaire. Bitwise ET donnera 00. Les opérations BitWise avec 1 donneront 1 ou 0 toujours parce que 1 n'a que la place d'une unité significative en binaire. Il ne peut donc renvoyer aucune valeur autre que 0 ou 1.