Hace poco vi una pregunta de la entrevista preguntando lo siguiente:
Dado un número de 32 bits, escribir código seudo para voltear el segundo bit última
¿Cuál es la mejor / manera más fácil de hacer esto?
Hace poco vi una pregunta de la entrevista preguntando lo siguiente:
Dado un número de 32 bits, escribir código seudo para voltear el segundo bit última
¿Cuál es la mejor / manera más fácil de hacer esto?
utilizar un operador XOR bit a bit?
0x00000002 MÁSCARA #define
nueva edad = ^ MÁSCARA
O-exclusiva con 2. Por ejemplo i = i ^ 2
a = 0x80000000; // the second last bit set
if( i & a == 0) // not set in i -> set it
i |= a;
else // set -> un-set it in i
i &= ~a;
edit: arg, por supuesto, puede XOR :-) Pero 2 es el segundo bit no la segunda último bit. Tal vez mejor hablar de MSB y LSB.
X ^ (1<<n) will toggle the state of nth bit in the number X.
Veo algunas respuestas interpretan "última gota", como MSB, otros como LSB. Quizás están buscando candidatos suficientemente inteligente como para hacer una pausa y pedir una aclaración antes de poner hacia fuera código. Eso es muy importante en el trabajo en el mundo real.