Interjú: essek Bit

szavazat
5

Nemrég láttam egy interjút jellegű kérdéssel a következő:

Adott egy 32 bites szám, írj pszeudo kódot, hogy megfordítja a második utolsó bit

Mi a legjobb / legegyszerűbb módja ennek?

A kérdést 06/07/2010 11:50
a forrás felhasználó
Más nyelveken...                            


6 válasz

szavazat
0

használjon egy bitenkénti XOR üzemeltetője?

Válaszolt 06/07/2010 11:52
a forrás felhasználó

szavazat
8

#define MASZK 0x00000002 

new = régi ^ MASZK

Válaszolt 06/07/2010 11:54
a forrás felhasználó

szavazat
3

Exkluzív Vagy 2. Például i = i ^ 2

Válaszolt 06/07/2010 11:55
a forrás felhasználó

szavazat
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, természetesen akkor XOR belőle :-) De 2 a második bit nem a második utolsó bit. Talán jobb, ha beszélünk az MSB és LSB.

Válaszolt 06/07/2010 12:02
a forrás felhasználó

szavazat
5
X ^ (1<<n) will toggle the state of nth bit in the number X.
Válaszolt 17/07/2010 01:01
a forrás felhasználó

szavazat
6

Látom válaszokat értelmezni „utolsó bit”, mint MSB, mások LSB. Talán ők keresnek jelölteket okos ahhoz, hogy szünet, és kérjen felvilágosítást előtt ontják a kódot. Ez nagyon fontos a valós munkát.

Válaszolt 07/10/2010 21:53
a forrás felhasználó

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