Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют
Если маска подсети 255.255.248.0 и IP-адрес компьютера в сети 112.154.133.208, то номер компьютера в сети
1. Поскольку первые два октета (октет — число маски, содержит
2. Запишем
Итого, последние два октета маски записываются как 11111000 00000000.
3. Запишем последние два октета IP-адреса компьютера в сети:
Итого, последние два октета IP-адреса компьютера в сети записываются так: 10000101 11010000.
4. Сопоставим последние октеты маски и адреса компьютера в сети:
11111000 00000000,
10000101 11010000.
Жирным выделена нужная нам часть. Переведем её в десятичную систему счисления:
Ответ: 1488.
Приведём решение Владимира Файзуллина (Пермь) на языке Python.
a = list(map(int, input('Введите адрес маски в формате 255.255.248.0:').split('.')))
b = list(map(int, input('Введите IP:').split('.')))
x=bin(a[0])[2:]+bin(a[1])[2:]+bin(a[2])[2:]+bin(a[3])[2:]
y=bin(b[0])[2:]+bin(b[1])[2:]+bin(b[2])[2:]+bin(b[3])[2:]
i=x.count('1')
y=y[(i-1):]
print(int(y,2))
Приведём решение Данила Шарлова на языке Python.
from ipaddress import ip_network, ip_address
ip = '112.154.133.208'
mask = '255.255.248.0'
net = ip_network(f'{ip}/{mask}',0)
print(int(ip_address(ip))-int(net.network_address))

