题目描述:
子网掩码的要求:
1)如255.255.255.0
每个整形都不能大于255
转换成二进制的字符串,必须前面全为1,后面全为0
ip地址的要求:
1)第一个整数不能为127(环回地址),不能为0和255
2)四个整数都不能大于255
判断两个ip地址是不是在同一个子网就是判断ip1、ip2分别与mask按位与的结果相同。
示例:
I P 地址 192.168.0.1
子网掩码 255.255.255.0
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
I P 地址 192.168.0.254
子网掩码 255.255.255.0
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
通过以上对两台计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0,所以这二台计算机可视为是同一子网络。
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);