В терминологии сетей TCP/IP маска сети — это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт
записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32. 240.0.
Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.96.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.
Рассмотрим третий слева байт в IP-адресе узла и адресе сети, представим их в двоичном виде:
11210 = 0111 00002; 9610 = 0110 00002.
Найдём такое число, первая часть которого единицы, а вторая часть − нули, поразрядная конъюнкция которого с числом 112 даст число 96: 1110 00002 = 22410.
Ответ: 224.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses School;
begin
var ip := '224.128.112.142';
var net := '224.128.96.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; // ответ 224
end;
end;
end.

