基本上我需要的是一种从用户输入其ip地址的输入的方法,然后输出每个部分的后续8位,以确定哪些位是打开和关闭的。
我目前让用户在每个部分输入他们的IP地址,如下所示:
System.out.print("Please input the first set in your IP Address: ");
strHolder = kb.next();
first = Integer.parseInt(strHolder);
System.out.print("Please input the second set in your IP Address: ");
strHolder = kb.next();
second = Integer.parseInt(strHolder);
System.out.print("Please input the third set in your IP Address: ");
strHolder = kb.next();
third = Integer.parseInt(strHolder);
System.out.print("Please input the fourth set in your IP Address: ");
strHolder = kb.next();
fourth = Integer.parseInt(strHolder);
我对Java不是很有经验。我在大学里上过一堂课,其中大部分时间我都不得不谷歌怎么做,但我没有发现任何关于位过程的事情。
答案 0 :(得分:3)
String s = Integer.toBinaryString(first);
答案 1 :(得分:0)
如果输入类似于:123.124.125.126
(一个字符串),则可以使String [] strListHolder = strHolder.split(“。”)并对其进行操作。
Integer[] holder = new Integer[strListHolder.count];
for(int i = 0; i < strListHolder.count; i++){
holder[i] = Integer.parseInt(strListHolder[i]);
}
这就是你想要的吗? @编辑 之后,您可以检查每个部分的第n位:
if ((holder[i] & (1 << n)) != 0)
{
// The bit was set
}
答案 2 :(得分:0)
IP地址(IPV4)的格式为xxx.xxx.xxx.xxx
。
假设输入是字符串格式。 首先使用字符串类中的split函数分隔4个部分。 你可以把各个部分和&amp;它们用255来获取被设置的位并使用相同的信息来找到未设置的位。
String[] str = ip.split(".");
for (String each : str) {
System.out.println(Integer.parseInt(each) & 255); // this would print the set bits just convert it to binary
}