В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 116.29.170.89 и маской сети 255.255.255.224. Сколько в этой сети IP-адресом, для которых в двоичной записи IP-адреса суммарное количество единиц в левых двух байтах не менее суммарного количества единиц в правых двух байтах.
В ответе укажите только число.
Решение:
Решение на Python:
from ipaddress import *
c = 0
for ip in ip_network('116.29.170.89/255.255.255.224', 0):
ip2 = f'{ip:b}'
if ip2[:16].count('1') >= ip2[16:].count('1'): c += 1
print(c)
Ответ: 26
Ответ:
26