Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Определяем адрес сети
- 1) Даны IP-адрес и маска подсети, необходимо вычислить адрес сети - метод getNetAddress.
- Используйте операцию поразрядной конъюнкции (логическое И).
- Пример:
- IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)
- Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0)
- Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)
- 2) Реализовать метод print, который выведет в консоль данные в двоичном коде
- 3) Метод main не участвует в тестировании
- */
- public class Solution {
- public static void main(String[] args) {
- byte[] ip = new byte[]{(byte) 192, (byte) 168, 1, 2};
- byte[] mask = new byte[]{(byte) 255, (byte) 255, (byte) 254, 0};
- byte[] netAddress = getNetAddress(ip, mask);
- print(ip); //11000000 10101000 00000001 00000010
- print(mask); //11111111 11111111 11111110 00000000
- print(netAddress); //11000000 10101000 00000000 00000000
- }
- public static byte[] getNetAddress(byte[] ip, byte[] mask) {
- byte[] netAddress = {(byte) (ip[0] & mask[0]), (byte) (ip[1] & mask[1]),
- (byte) (ip[2] & mask[2]), (byte) (ip[3] & mask[3])};
- return netAddress;
- }
- public static void print(byte[] bytes) {
- for (byte b: bytes){
- String s = Integer.toBinaryString(b*1);
- if (s.length() > 8){
- System.out.print(s.substring(s.length() - 8) + " ");
- } else if (s.length() < 8){
- while (s.length() < 8){
- s = 0 + s;
- }
- System.out.print(s + " ");
- }
- }
- System.out.println();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement