Интервью: зеркальное отражение битов

Я недавно видел вопрос об интервью спросить следующее:

Учитывая число на 32 бита, напишите псевдо код для зеркального отражения предпоследнего бита

Что лучший/самый легкий путь состоит в том, чтобы сделать это?

5
задан rekire 29 April 2012 в 13:39
поделиться

4 ответа

#define MASK 0x00000002 

new = old ^ MASK

9
ответ дан 18 December 2019 в 05:54
поделиться

Исключительное ИЛИ с 2. Например, i = i ^ 2

4
ответ дан 18 December 2019 в 05:54
поделиться
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, конечно, вы можете выполнить XOR :-) Но 2 - это второй бит, а не второй последний бит. Может лучше поговорить о MSB и LSB.

3
ответ дан 18 December 2019 в 05:54
поделиться

использовать побитовый оператор XOR?

0
ответ дан 18 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: