Сколько адресов, в двоичной записи которых ровно 10 единиц, содержится
Условие
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0. Известно, что в двоичной записи адреса сети, к которой принадлежит узел 68.30.20.77, содержится столько же единиц, сколько нулей в двоичной записи маски этой сети. Сколько адресов, в двоичной записи которых ровно 10 единиц, содержится в этой сети?
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Приведём решение на языке Python. from ipaddress import * for mask in range(32, -1, -1): net = ip_network(f'68.30.20.77/{mask}',0) if bin(int(net[0])).count('1') == 32 - mask: count = 0 for ip in net: if bin(int(ip)).count('1') == 10: count += 1 print(count)
Осталось ещё 1 шаг
Приведём аналитическое решение Юрия…
Бесплатно · займёт минуту