Доброго времени суток.
задаем маску
char mask[] = "255.255.254.0";
есть функция
void
bin(unsigned long n)
{
    int t = 32;
    while (t-- > 0) {
        if (n & 01)
            printf("1");
        else
            printf("0");
        n >>= 1;
        if (t % 8 == 0 && t)
            printf(".");
    }
    printf("\n");
}
делаем
bin(inet_addr(mask));
получаем
11111111.11111111.01111111.00000000
11111111.11111111.11111110.00000000
Подскажите, почему так получается?




