当使用子网掩码时,如何计算java中的a类和b类ip地址范围?

7dl7o3gd  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(262)
  1. public void cCalc() {
  2. oct1 = oct1 & sm1;
  3. oct2 = oct2 & sm2;
  4. oct3 = oct3 & sm3;
  5. oct4 = oct4 & sm4;
  6. String binString;
  7. binString = Integer.toBinaryString(sm1) + Integer.toBinaryString(sm2) +
  8. Integer.toBinaryString(sm3) + Integer.toBinaryString(sm4);
  9. int count = 0;
  10. for (int loop = 0; loop < binString.length(); loop++) {
  11. if (binString.charAt(loop) == '1') {
  12. count++;
  13. }
  14. }
  15. int hostBits = 32 - count;
  16. int hostsAvailable = (int) Math.pow(2, hostBits) - 2; //2^n - 2
  17. int extraBits = count - 24;
  18. int networksAvailable = (int) Math.pow(2, extraBits);
  19. System.out.println("Hosts per Network = " + hostsAvailable);
  20. System.out.println("Number of Networks = " + networksAvailable);
  21. String finalCalc = "";
  22. for (int loop = 1; loop <= networksAvailable; loop++) {
  23. //ID
  24. finalCalc = finalCalc + " Network ID: " + oct1 + "." + oct2 + "." + oct3 + "." + oct4;
  25. //Start
  26. oct4 = oct4 + 1;
  27. finalCalc = finalCalc + "\n Subnet Range(s): " + oct1 + "." + oct2 + "." + oct3 + "." + oct4 + " to ";
  28. //End
  29. oct4 = oct4 + hostsAvailable - 1;
  30. finalCalc = finalCalc + " " + oct1 + "." + oct2 + "." + oct3 + "." + oct4;
  31. //BroadcastAddress
  32. oct4 = oct4 + 1;
  33. finalCalc = finalCalc + "\n Broadcast address: " + oct1 + "." + oct2 + "." + oct3 + "." + oct4;
  34. //For next ID
  35. oct4 = oct4 + 1;
  36. finalCalc = finalCalc + "\n";
  37. setResult(finalCalc);
  38. }
  39. }

这是我在子网范围计算器应用程序中的c类ip地址范围计算方法-虽然我了解c类所需的计算,但a类和b类的计算对我来说似乎是不可能的。
我怎么开始计算a和b级呢?在过去一周左右的时间里,我一直在用谷歌搜索和反复试验,但我似乎无法理解这一点。
任何建议或信息都会非常棒。
(请原谅我的代码可能不好,我是java的初学者)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题