Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Здравствуйте, мыщъх, Вы писали:
М>>считаю, что под такую задачу можно искать или матерых хакеров, которые это делают в уме (ну в частности, на вопрос что сие значит (x & ( x + 1)) я ответил не раздумывая. меня даже плюс не смутил (в реальной жизни там минус), но это не потому, что у меня мозги работают с космической скоростью, а потому что этот шаблон я регулярно вижу на протяжении всей моей жизни.
ПМ>У меня другое мнение. Вот спросят меня, "что делает (x & ( x + 1))?" Я ни разу не хакер и эту хрень первый раз в жизни вижу, но что я первым делом начну делать (если интернета нет под рукой)? А начну я выписывать цифекрки:
как бы x & (x — 1) проверка на то, что x это степень двойки. если поменять минус на плюс, то получим проверку, что следующее за x число это степень двойки, а сама x это битовая маска из единиц. это в том случае если результат равен нулю. все остальные случаи мы приравниваем к true.
ПМ>И так до просветления. И что я увижу? Увижу то, что четные цифры оно не трогает, а у нечетных убирает все единички до младшего нуля, что эквивалентно вычитанию чего-то там (ответ зависит от степени моего просветления).
короче ваш ответ таков: "оно там что-то делает с битами"
> А если я по ночам Hacker's Delight читал под одеялом и отвечаю на этот вопрос по памяти,
если вы возились с асмом, контроллерами или хотя бы парсили exe/elf файлы -- вы уже знаете ответ. т.к. первый же макрос который пишется на си это ALIGN_UP/DOWN. да и при разборе файловых систем без него никуда.
> то мне его, наверное, нет особого смысла задавать, проще про коней спросить.
видите? а меня кони поставили в тупик. на бумаге рисовать лень. доски дома нет. разве какую компьютерную программу скачать в ней поэксперементировать? догадываюсь, что задачу можно попытаться решить на фрагменте 8x8, а затем распростанить на всю доску
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.