我必须将以点分隔的十进制格式给出的 32 位 IP 地址(如“172.168.100.23”)转换为 32 位连续二进制数的字符串,如“10101100101010000110010000010111”。然后我必须分开 7 个 MSB,即 1010110 和 25 位,即 0101010000110010000010111。我该怎么办?是否有任何内置功能可以帮助我解决问题?
我正在输入字符串
System.out.println("Enter an IP address");
String ip=input.next();
然后将其转换为子字符串
String delimiter="\\.";
String[] array=ip.split(delimiter);
String s4=array[0];
String s3=array[1];
String s2=array[2];
String s1=array[3];
然后我将每个字符串转换为整数
int num4=Integer.parseInt(s4);
int num3=Integer.parseInt(s3);
int num2=Integer.parseInt(s2);
int num1=Integer.parseInt(s1);
在此之后,我必须将每个数字转换为其二进制并用 0 填充 msb,如果数字的二进制小于 8 位,如(10111)它可能是(00010111)以完成 32 位。之后我必须组合每个数字的所有单独位,最后我必须将 7 个 MSB 与其他 25 个位分开。请帮我完成这个问题