Задание №13 — Маски подсети
В терминологии сетей ТСР/IР маской сети называют двоичное число, которое показывает, какая часть IР-адреса узла сети относится к адресу сети, а какая к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IР-адресом 116.29.170.89 и маской сети 255.255.255.224. Сколько в этой сети IР-адресов, для которых в двоичной записи IР-адреса суммарное количество единиц в левых двух байтах не менее суммарного количества единиц в правых двух байтах. В ответе укажите только число.
Правильный ответ
26
Пояснение
Решение:
Маска 255.255.255.224 оставляет свободными 5 младших битов последнего байта.
Левые два байта: — 4 единицы, — 4 единицы, значит .
Правые два байта: даёт 4 единицы; четвёртый байт равен плюс 5 свободных младших битов, то есть даёт единиц. Итого , где .
Условие даёт , то есть . Количество пятибитовых наборов, в которых не более трёх единиц:
ones = lambda x: bin(x).count('1')
count = 0
for b4 in range(64, 96):
if ones(116) + ones(29) >= ones(170) + ones(b4):
count += 1
print(count) # 26
Ответ: 26