无符号int类型保存ip和子网,前2个数分别和第3个数&运算,结果一样输出Y。
unsigned stoi(char *s)
{
unsigned r = 0, t = 0;
while (*s)
{
if (*s == '.')
{
r += t;
r <<= 8;
s++;
t = 0;
continue;
}
t = t * 10 + (*s - '0');
s++;
}
r += t;
return r;
}
int main()
{
char a[20], b[20], c[30];
unsigned na, nb, nc;
while (~scanf("%s%s%s", a, b, c))
{
na = stoi(a);
nb = stoi(b);
nc = stoi(c);
if ((na & nc) == (nb & nc))
putchar('Y');
else
putchar('N');
}
return 0;
}
二进制 与 运算结果一样则在同一子网