2010-05-17 14 views

Respuesta

25

Es la realización de un bit a bit "y" como un operador de asignación compuesta. Es equivalente a:

int x = 45; 
x = x & 34; 
int y = x; 

Ahora 45 = 32 + 8 + 4 + 1, y 34 = 32 + 2, así que el resultado de un bit a bit "y" es de 32.

personalmente creo que el uso de un operador de asignación compuesta en una declaración de variables es bastante ilegible - pero se supone que esto no era código "real" para comenzar con ...

+0

¡Maldición, no se puede competir con Skeet! (debe agregarse aquí: http://meta.stackexchange.com/questions/9134/jon-skeet-facts). Cuando 10 personas, entre ellas @Jon, respondan una pregunta al mismo tiempo, solo se irá con más de 2 insignias de Buena respuesta ... y todo antes de la hora del té de la mañana (en horario de Londres). Agradable :) – slugster

0

Es equivalente a:

int x = 45; 
x = x & 34; 
int y = x; 

The & operator para tipos integrales calcula el bit a bit lógico Y de sus operandos.

0

Parece AND a nivel de bit, que se asigna a x mediante la notación de atajo &=, y también se asigna a y.

0
45 = 101101(binary) 
34 = 100010(binary) 

45 & 34 = 100000(binary) = 32 
0

Aquí x &= 34 se utiliza como una tarea y una expresión. Calcula el valor de x & 34, lo asigna al x y el valor de la expresión es el asignado.

El resultado de la operación bit a bit 45 & 34 es 32, que se asigna a x, y luego también a y.

10
int x = 45; 
int y = x &= 34; 
Gives: y = 32 

int x = 45; // 45 = 101101 
      // 34 = 100010 
x = x & 34; // 101101 
      // 100010 & 
      // -------- 
      // 100000 (= 32) 

int y = x; // y = 32 
Cuestiones relacionadas