Niedawno zobaczyłem pytanie wywiad pytając, co następuje:
Biorąc pod uwagę liczbę 32 bit, napisać kod pseudo odwrócić przedostatni kawałek
Jaki jest najlepszy / Najprostszym sposobem, aby to zrobić?
Niedawno zobaczyłem pytanie wywiad pytając, co następuje:
Biorąc pod uwagę liczbę 32 bit, napisać kod pseudo odwrócić przedostatni kawałek
Jaki jest najlepszy / Najprostszym sposobem, aby to zrobić?
używać bitowe operatora XOR?
#define MASK 0x00000002
Nowa maska ^ = stare
Exclusive Albo z 2. Przykładowo 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, oczywiście można go XOR :-) Ale 2 to druga nie nieco przedostatni kawałek. Może lepiej mówić o MSB i LSB.
X ^ (1<<n) will toggle the state of nth bit in the number X.
Widzę kilka odpowiedzi „zinterpretować” jako ostatni bit MSB, inni jako LSB. Być może szukasz kandydatów na tyle silny, aby zatrzymać i poprosić o wyjaśnienia przed cranking kod. To bardzo ważne w pracy w świecie rzeczywistym.