Задание 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\)