Hace poco vi una pregunta de la entrevista preguntando lo siguiente:Entrevista: Mover de un tirón Bits
dado un número de 32 bits, escriba seudo código para darle la vuelta al segundo bit última
¿Cuál es la mejor/forma más fácil de hacer esto?
Hace poco vi una pregunta de la entrevista preguntando lo siguiente:Entrevista: Mover de un tirón Bits
dado un número de 32 bits, escriba seudo código para darle la vuelta al segundo bit última
¿Cuál es la mejor/forma más fácil de hacer esto?
#define MASK 0x00000002
nueva edad =^máscara
¿utiliza un operador XOR a nivel de bit?
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;
edición: arg, por supuesto que puedo XOR :-) Pero 2 El segundo bit no es el segundo bit más reciente. Quizás sea mejor hablar de MSB y LSB.
X^(1<<n) will toggle the state of nth bit in the number X.
Veo algunas respuestas interpretar "último bit" como MSB, otros como LSB. Tal vez estén buscando candidatos lo suficientemente inteligentes como para detenerse y pedir aclaraciones antes de arrancar el código. Eso es muy importante en el trabajo del mundo real.
+1 punto excelente –
@Ether Esto definitivamente no es algo extraordinariamente elegante. Este es el uso más básico de XOR. Por lo tanto, esto no tiene nada que ver con la otra pregunta, que trata sobre el uso complejo y frío de la manipulación de bits. – Alderath
Quizás el entrevistador estaba buscando una pregunta de seguimiento sobre si se trata de una representación endian grande o pequeña, o algo similar. – NealB