J'ai vu récemment une question d'entrevue posant les questions suivantes:
Étant donné un nombre de 32 bits, écrire un code pseudo pour retourner le second dernier bit
Quelle est la meilleure / meilleure façon de le faire?
J'ai vu récemment une question d'entrevue posant les questions suivantes:
Étant donné un nombre de 32 bits, écrire un code pseudo pour retourner le second dernier bit
Quelle est la meilleure / meilleure façon de le faire?
utiliser un opérateur XOR au niveau du bit?
0x00000002 #define MASQUE
new = vieux ^ MASQUE
OU exclusif d'2. Par exemple 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, bien sûr, vous pouvez XOR :-) Mais il 2 est le second bit pas le second dernier bit. Peut-être mieux parler de MSB et LSB.
X ^ (1<<n) will toggle the state of nth bit in the number X.
Je vois des réponses à interpréter « dernier bit » comme MSB, d'autres comme bit de poids faible. Peut-être qu'ils sont à la recherche des candidats assez intelligents pour faire une pause et demander des éclaircissements avant de tourner la manivelle sur le code. Cela est très important dans le travail dans le monde réel.