если вы собираетесь настраивать сеть, то вам нужно знать, как распределять ее. для этого необходимо знать сетевой и широковещательный адреса сети. следуйте шагам ниже, чтобы узнать, как вычислить эти адреса, если у вас есть ip-адрес и маска подсети.
метод
1
для классовой адресации
1
для сети с классовой адресацией общее число битов равно 8. или tb = 8.
маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и255.
изображение с названием 1636270 1b1
таблица ниже позволяет определить «число битов, используемое для подсетей» (n) для соответствующей маски подсети.
изображение с названием 1636270 1b2
значение маски подсети по умолчанию 255. оно не используется для разделения подсетей.
пример:
пусть ip-адрес будет равен 210.1.1.100 а маска подсети 255.255.255.224
общее число битов tb = 8 число битов используемое для подсетей n = 3 (так как маска подсети равна 224, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 3)
изображение с названием 1636270 1b4
изображение с названием 1636270 2
2
из предыдущего шага у вас есть «число битов используемое для подсетей» (n), и вы знаете tb. теперь вы можете найти «число битов оставшееся для хостов» (m) равное tb - n, так как общее число битов — это сумма битов для подсетей и хостов tb = m+n.
число битов оставшееся для хостов = m = tb - n = 8 - 3 = 5
изображение с названием 1636270 2b1
изображение с названием 1636270 3
3
теперь вам нужно посчитать «число подсетей», равное 2n, и «значение последнего бита, используемого для маски подсети», которое равно 2m. число хостов для подсети равно 2m - 2.
число подсетей = 2n = 23 = 8
значение последнего бита, используемого для маски подсети = δ = 2m = 25 = 32
изображение с названием 1636270 3b1
изображение с названием 1636270 4
4
теперь вы можете найти ранее рассчитанное число подсетей, разделив их по значению «последнего бита, используемого для маски подсетей» или δ-адресу.
8 подсетей (как мы вычислили на предыдущем шаге) показаны выше.
в каждой из них 32 адреса.
изображение с названием 1636270 5
uinput = input('трёхзначное натуральное число: ') # 123
numbers = [int(i) for i in uinput] # [1, 2, 3]
highest = max(numbers) # 3
lowest = min(numbers) # 1
numbers.pop(numbers.index(highest)) # [1, 2, 3] = [1, 2]
numbers.pop(numbers.index(lowest)) # [1, 2] = [2]
middle = numbers[0] # 2
# print(highest, lowest, middle) 3 1 2
num1 = str(highest) + str(middle) # '32'
if lowest == 0:
~~~~if middle == 0:
~~~~~~~~num2 = str(highest) + str(lowest)
~~~~else:
~~~~~~~~num2 = str(middle) + str(lowest)
else:
~~~~num2 = str(lowest) + str(middle) # '12'
print(num1 + ' - ' + num2 + ' = ' + str(int(num1) - int(num2))) # 32 - 12 = 20