Задание 13. Информатика. Поляков-6847

(К. Багдасарян) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 202.75.38.152 и маской сети 255.255.255.248. Сколько в этой сети IP-адресов, у которых в двоичной записи IP-адреса имеется сочетание трех подряд идущих единиц?

В ответе укажите только число.

Решение:

Получим двоичную запись маски

Python


mask = (255 << 24) + (255 << 16) + (255 << 8) + 248
print(bin(mask)[2:])

Вывод программы:

'11111111111111111111111111111000'

Под адрес сети выделяется \(29\) битов, а под адреса хостов \(3\) бита. Значит номера хостов могут меняться в диапазоне от \(0\) до \(8\).

Python


ip = (202 << 24) + (75 << 16) + (38 << 8) + 152

q = 0

for i in range(8):
    temp_ip = ip + i
    if bin(temp_ip)[2:].count('111'):
        q += 1

print(q)

Ответ: \(4\)

Разбор 13 задания на стриме