[Programming] Вот ведь привязалось!
Людям, далеким от программирования, будет неинтересно.
Не идет у меня из головы этот полл.
Хожу, читаю комментарии, думаю, думаю. Думать начал уже после того как ответил, что с кандидатом таким беседовать не стоит.
Кстати, господа профессиональные программисты (под профессиональными я разумею тех, кто учился этому делу и имеет MS или BS), сходите, ткните в сабмит этого полла, зря мы что ли учились? А то там 18.2% считают, что битовую арифметику знать не надо, шутка ли дело?!
А надумал я вот что.
К людям, которые на интервью предлагают решить подобное:
Помимо прочего кандидатам на интервью предлагается такая задача: для произвольных целых n, M1 и M2 запишите на C условие "в n установлены все биты из M1 и сброшены все биты из M2"
я бы на работу и сам не пошел. Потому что если человек косноязычен на интервью (а интервьюирует ведь обычно TL или PM), он и в жизни будет косноязычен. Скажите пожалуйста, как вы понимаете это задание?
Коллега
mbravo@lj, очевидно, понял так, что надо какие-то действия над числами совершить (и правда, слово "условие" в задаче выделено не очень четко, на интервью с перепугу можно и не заметить, знаем, плавали). Ладно, если даже и заметить слово "условие" и понять, что требуется написать логическое выражение на C, то, заметьте, условие должно быть таким, что "в n установлены все биты из M1 и сброшены все биты из M2".
В большинстве C-компиляторов в произвольных (то есть ЛЮБЫХ) M1 и M2 ровно по 32 бита. Итого, от нас хотят, чтобы мы написали условие "в n установлены все 32 бита из M1 и сброшены все 32 бита из M2". Ну и прекрасно.
((n == 0xFFFF) && (n == 0x0000))
Вот только не надо мне говорить, что под битом имелась в виду единица.
Выражайтесь ЯСНЕЕ!