Няшная / Говнокод #17292 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
int log2_floor (unsigned x)
{
    #define NIMHTNOE0WNM(n) (((~(x>>n)+1)>>n)&n)
 
    int res, n;
 
    n = NIMHTNOE0WNM(16); res  = n; x >>= n;
    n = NIMHTNOE0WNM( 8); res |= n; x >>= n;
    n = NIMHTNOE0WNM( 4); res |= n; x >>= n;
    n = NIMHTNOE0WNM( 2); res |= n; x >>= n;
    n = NIMHTNOE0WNM( 1); res |= n;
    return res;
}

Кто-то Воррена перечитал.

Запостил: codemonkey codemonkey, (Updated )

Комментарии (6) RSS

  • Если пять раз повторить NIMHTNOE0WNM, можно вызвать Ктулху.

    БЕЗН0ГNМ
    Ответить
      • #define N_IF_MSB_HIGHER_THAN_N_OR_ELSE_0(n) (((-(x>>n))>>n)&n)
        #define N_IF_MSB_HIGHER_THAN_N_OR_ELSE_0_WITH_NO _MINUS(n) (((~(x>>n)+1)>>n)&n)

        Чел знает толк в нейминге, да. Имя макроса длиннее тела в несколько раз.
        Ответить
        • Сократишь - не нравится, не сократишь - не нравится. Остальные ответы там вообще из магических чисел состоят.
          Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8