|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexey Kruglov 2:5015/70.5 04 Mar 2003 16:54:43 To : Oleg I. Khovayko Subject : Операции над целыми числами. -------------------------------------------------------------------------------- Понедельник 03 Марта 2003 17:49, Oleg I. Khovayko wrote to Michael Sedov: OK> 0. Актеры: OK> int x, y, mask; OK> "**" - операция возведения в степень Будем считать int 32-битовым. [...] OK> 2. Проверить, принадлежит ли число множеству 2**n: OK> if((x & (x - 1)) { не принадлежит } OK> else { принадлежит } Hеправильно работает для x=0 и x=-0x80000000. OK> 3. Hайти наибольший делитель числа из множества 2**n OK> (то же самое - взять младший бит числа): OK> y = x & -x; Долго думал, что ты имел в виду. Потом понял, что найти наибольший делитель вида 2^n для числа x. Опять неправильно раборает для x=0 и x=-0x80000000. nOkA. Alexey. --- GoldED+/W32 1.1.5-021109 * Origin: 6DFA 1186 7576 DE60 6CCB EB39 AD81 1733 EEBB 970A (2:5015/70.5) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27643e64a21b.html, оценка из 5, голосов 10
|