В терминологии сетей ТСР/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места — нули. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.
Для узла с IP-адресом 170.155.137.181 адрес сети равен 170.155.136.0. Чему равно наибольшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.
Выпишем IP-адрес и адрес сети в двоичной системе счисления:
170.155.137.18110 = 1000 0011. 1001 1011. 1000 1001. 1011 01012;
170.155.136.010 = 1000 0011. 1001 1011. 1000 1000. 0000 00002.
Видим, что различие
Ответ: 254.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses School;
begin
var ip := '170.155.137.181';
var net := '170.155.136.0';
for var mask := 31 downto 1 do begin
var calc := new CalcIP(ip, mask);
if calc.Network.value = net then
begin
var mask_str := calc.Netmask.value;
var octets := mask_str.Split('.');
var thirdOctet := octets[2].ToInteger;
Print(thirdOctet);
break; // ответ 254 max
end;
end;
end.

