В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы.
Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Сеть задана IP-адресом \(134.80.0.0\) и сетевой маской \(255.240.0.0.\)
Определите наибольшую сумму числовых значений октетов IP-адреса устройства (компьютера) из этой сети, у которого количество единиц и количество нулей в двоичной записи одинаково.
В ответе укажите только число.
Решение:
Python
ip = (134 << 24) + (80 << 16)
mask = (255 << 24) + (240 << 16)
net = ip & mask
p = f'{mask:b}'.count('0')
moct = 0
for x in range(1, 2**p - 1):
ip = net + x
if f'{ip:b}'.count('0') == 16:
m = ((ip >> 24) & 255) + ((ip >> 16) & 255) + ((ip >> 8) & 255) + (ip & 255)
moct = max(moct, m)
print(moct)
Ответ: \(718\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене