Interview: Flipping Bits

voix
5

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?

Créé 06/07/2010 à 11:50
source utilisateur
Dans d'autres langues...                            


6 réponses

voix
0

utiliser un opérateur XOR au niveau du bit?

Créé 06/07/2010 à 11:52
source utilisateur

voix
8

0x00000002 #define MASQUE 

new = vieux ^ MASQUE

Créé 06/07/2010 à 11:54
source utilisateur

voix
3

OU exclusif d'2. Par exemple i = i ^ 2

Créé 06/07/2010 à 11:55
source utilisateur

voix
3
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.

Créé 06/07/2010 à 12:02
source utilisateur

voix
5
X ^ (1<<n) will toggle the state of nth bit in the number X.
Créé 17/07/2010 à 01:01
source utilisateur

voix
6

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.

Créé 07/10/2010 à 21:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more