1. Си / Говнокод #3202

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // Делаем из префикса количество хостов (без .0 и броадкаста)
    numips = pow(2.0, (double)(32 - slashnet)) - 2;
    
    // Делаем префикс из маски сети
    slashnet = 32 - ((int)log2((double)(0xFFFFFFFF - vnetconfig->nm)) + 1);

    Всё те же, всё оттуда же...

    Запостил: raorn, 12 Мая 2010

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

    • Да, вот что значит не учить в школе двоичную систему счисления.
      Ответить
    • Аааа, я понял, это всё для кроссплатформенности! Вдруг этот код будет компилироваться на троичной машине?
      Ответить
      • http://ru.wikipedia.org/wiki/Троичный_компьютер
        Ответить
      • Тогда надо логарифму основание менять и 0хFFFFFFFF будет выглядеть совсем иначе. Даже боюсь представить как.
        Вообще, конечно же, можно было ограничиться целочисленной арифметикой.
        Ответить
    • Боюсь предположить... Это из фряхи?
      Ответить
      • > Боюсь предположить

        да, о покойных или хорошо, или ничего
        Ответить
      • Нет, не из фряхи. Источник легко гуглится.
        Ответить

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