(А. Сражаев) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла маске сети. Сеть задана IP-адресом одного из входящих в неё узлов \(172.16.128.73\) и сетевой маской \(255.255.255.192.\) Определите количество IP-адресов в этой сети, которые могут быть присвоены компьютерам, при условии, что шестнадцатеричная запись IP-адреса оканчивается на букву \(F.\)
Решение:
Python
ip = (172 << 24) + (16 << 16) + (128 << 8) + 73
mask = (255 << 24) + (255 << 16) + (255 << 8) + 192
net = ip & mask
p = bin(mask)[2:].count('0')
q = 0
for x in range(1, 2**p - 1):
ip = net + x
q += ip & 15 == 15
print(q)
Ответ: \(3\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене