Задание №13 — Маски подсети
В терминологии сетей ТСР/IР маской сети называют двоичное число, которое показывает, какая часть IР-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IР-адресом 253.112.169.12 и маской сети 255.255.254.0. Сколько в этой сети IР-адресов, для которых в двоичной записи IР-адреса суммарное количество единиц в правых двух байтах не менее суммарного количества единиц в левых двух байтах. В ответе укажите только число.
Правильный ответ
46
Пояснение
Решение:
Маска 255.255.254.0 оставляет свободными 1 младший бит третьего байта и весь четвёртый байт.
Левые два байта: — 7 единиц, — 3 единицы, значит .
Правые два байта: третий байт равен (3 единицы) плюс свободный бит ; четвёртый байт даёт единиц. Итого .
Условие даёт , то есть .
- : нужно , это ;
- : нужно , это .
Всего .
ones = lambda x: bin(x).count('1')
count = 0
for b3 in (168, 169):
for b4 in range(0, 256):
if ones(b3) + ones(b4) >= ones(253) + ones(112):
count += 1
print(count) # 46
Ответ: 46