Задача.
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу самого узла в этой сети. Обычно маска записывается по теме же правилам, что и IP-адрес - в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда - нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32. 240.0.
Для узла с IP-адресом 111.81.88.168 адрес сети равен 111.81.88.160.
Найдите наименьшее значение последнего байта маски. Ответ запишите в виде десятичного числа.
Решение.
В подобных задачах в первых двух абзацах даётся краткая теория, которая почти не меняется от задаче к задаче. Сам вопрос, который нас интересует, находится в последних двух абзацах!
Чтобы понять суть происходящего, выпишем IP-адрес, под ним адрес сети, пропустив свободную строчку. В свободной строчке мы должны записать байты маски.
Маска так же, как и IP-адрес, адрес сети, состоит из четырёх десятичных чисел (байт), которые не могут превышать значение 255.

Рассмотрим левый столбик. В IP-адресе и в адресе сети одинаковое число 111. Значит, первый слева байт маски равен числу 255
Если записать числа в двоичной системе в виде 8 разрядов (1 байта) (в случае, когда число в двоичном представлении имеет меньше 8 (восьми) разрядов, нужно дополнить старшие разряды нулями до 8 разрядов), то поразрядное логическое умножение двоичных разрядов байта IP-адреса и байта маски должно давать байт адреса сети

Почему нельзя поставить в байт маски число 239 (1110 1111) ? Или число 111 (0110 1111) ?

Существует ещё одно правило формирования байтов маски: Если нули в маске пошли, то их НЕ ОСТАНОВИТЬ!
Т.е. если мы хотя бы один нолик в двоичном представлении числа байта маски поставили, то все правые разряды обязаны занулить.

Но тогда у нас не получится число 111 (01101111) в байте адреса сети.
Более того, правило, что нули не остановить, сработает и для правых байтов. Т.е. если мы нолик поставили в двоичном представлении левого байта маски, то должны занулять и все правые байты!

Т.е. если соединить все байты маски в двоичном представлении, у нас будет только один переход от единиц к нулям.
После того, как разобрались с теорией, перейдём к нашей задаче!
Теперь мы понимаем, что три левых байта маски могут принимать значение только 255 (В двоичном представлении все единицы 11111111), из-за того, что совпадают числа IP-адреса и адреса сети в трёх левых байтах. К тому же, если бы попался хотя бы один нолик, в этих байтах, правые байты бы занулились!

Значение последнего байта маски нужно проанализировать и сделать его как можно меньшим, исходя из условия задачи.
Приступаем к решению
Ⅰ) Переводим числа 168 и 160 в двоичную систему счисления.
Число 168 в двоичной системе будет 10101000.
Число 160 в двоичной системе будет 10100000.
Ⅱ) Записываем байт IP-адреса и под ним, пропустив свободную строчку для байта маски, записываем байт адреса сети. Здесь уже 8 разрядов в каждом двоичном числе, поэтому не нужно дополнять нулями старшие разряды.

Видно, что можно поставить пять нулей справа в байте маски.

В шестой разряд справа уже нельзя поставить 0, потому что 1 * 0 будет 0, а должна быть 1! Плюс ко всему, если мы единицу поставили, дальше влево должны идти только единицы, чтобы не нарушалось главное правило составления маски.
Примечание: Мы забили нулями по максимуму байт маски, но так же было бы корректно байт маски представить в таком виде 11110000, однако такое представление не делает байт маски минимальным в числовом значении.
Переводим в десятичную систему получившийся минимальный из возможных в числовом значении байт маски 11100000.
11100000 = 224
Ответ: 224