Задание 13. Информатика. ЕГЭ. Статград. 01.04.2025-1

Просмотры: 266
Изменено: 1 апреля 2025

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.

Для узла с IP-адресом \(145.46.8.250\) адрес сети равен \(145.46.0.0.\) Каково максимально возможное количество единиц в двоичной записи IP-адреса этой сети, который может быть присвоен компьютеру? В ответе укажите только число.

Решение:

Так как \(145 = 10010001_2\) и \(46 = 101110_2,\) то для сети в IP-адресе выделено \(15\) старших битов. В сетевой части IP-адреса имеется \(7\) единиц. Учитывая, что широковещательный адрес не может использоваться для адресации сетевых устройств, то в хостовой часть IP-адреса может быть максимум \(32 - 15 - 1= 16\) единиц. Значит, максимальное количество единиц в IP-адресе, который может быть присвоен компьютеру в сети, равно \(7 + 16 = 23.\)

Python


ip = (145 << 24) + (46 << 16) + (8 << 8) + 250
net = (145 << 24) + (46 << 16)

p = 0
for n in range(1, 32):
    mask = int('1' * n + '0' * (32 - n), 2)
    if ip & mask == net:
        p = 32 - n
        break
qmax = 0
for x in range(1, 2**p - 1):
    qmax = max(qmax, f'{net + x : b}'.count('1'))
print(qmax)

Ответ: \(23\)