题目描述
子网掩码为32位的二进制数,对应IP地址中网络号和子网号的位设置为1,对应IP地址中主机号的位设置为0。
只要把IP地址和子网掩码进行逐位的“与”运算(and),就可以得出网络地址。
已知IP地址和子网掩码,请你编写程序计算出对应的网络地址。
输入描述
输入数据有多组,每组一行。为点分十进制表示的IP地址和子网掩码,IP地址和子网掩码之间以空格分隔。
输出描述
对每组输入数据,使用点分十进制表示输出计算出的网络地址,占一行。
输入样例
141.14.72.24 255.255.192.0
141.14.72.24 255.255.224.0
输出样例
141.14.64.0
141.14.64.0
AC代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n1,n2,n3,n4;
int s1,s2,s3,s4;
while(scanf("%d.%d.%d.%d %d.%d.%d.%d",&n1,&n2,&n3,&n4,&s1,&s2,&s3,&s4)!=EOF)
{
n1&=s1;
n2&=s2;
n3&=s3;
n4&=s4;
printf("%d.%d.%d.%d\n",n1,n2,n3,n4);
}
return 0;
}