Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. /* Определяем адрес сети
  2. 1) Даны IP-адрес и маска подсети, необходимо вычислить адрес сети - метод getNetAddress.
  3. Используйте операцию поразрядной конъюнкции (логическое И).
  4. Пример:
  5. IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)
  6. Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0)
  7. Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)
  8. 2) Реализовать метод print, который выведет в консоль данные в двоичном коде
  9. 3) Метод main не участвует в тестировании
  10. */
  11.  
  12. public class Solution {
  13. public static void main(String[] args) {
  14. byte[] ip = new byte[]{(byte) 192, (byte) 168, 1, 2};
  15. byte[] mask = new byte[]{(byte) 255, (byte) 255, (byte) 254, 0};
  16. byte[] netAddress = getNetAddress(ip, mask);
  17. print(ip); //11000000 10101000 00000001 00000010
  18. print(mask); //11111111 11111111 11111110 00000000
  19. print(netAddress); //11000000 10101000 00000000 00000000
  20. }
  21.  
  22. public static byte[] getNetAddress(byte[] ip, byte[] mask) {
  23. byte[] netAddress = {(byte) (ip[0] & mask[0]), (byte) (ip[1] & mask[1]),
  24. (byte) (ip[2] & mask[2]), (byte) (ip[3] & mask[3])};
  25. return netAddress;
  26. }
  27.  
  28. public static void print(byte[] bytes) {
  29. for (byte b: bytes){
  30. String s = Integer.toBinaryString(b*1);
  31. if (s.length() > 8){
  32. System.out.print(s.substring(s.length() - 8) + " ");
  33. } else if (s.length() < 8){
  34. while (s.length() < 8){
  35. s = 0 + s;
  36. }
  37. System.out.print(s + " ");
  38. }
  39. }
  40. System.out.println();
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement