Задание 13. Информатика. Поляков-6882

(А. Минак) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Некоторая сеть имеет маску 255.255.128.0. Сколько в этой сети IP-адресов, для которых числовое значение четырёхбайтного IP-адреса кратно четырём?

Решение:

Получим двоичную запись маски

Python


mask = (255 << 24) + (255 << 16) + (128 << 8) + 0
print(bin(mask)[2:])

Вывод программы:

'11111111111111111000000000000000'

Видно, что для адреса сети выделено первые \(17\) битов, а оставшиеся \(15\) битов оставлены для адресов хостов. Если число делится на \(4\), то его двоичная запись оканчивается на два нуля: \(00\). Значит, из \(15\) битов для адресов хостов \(13\) могут быть произвольными. Это даёт всего \(2^{13}=8192\) различных комбинаций.

Ответ: \(8192\)

Разбор 13 задания на стриме