Сейчас быстро пробежим как это все считается.
Ip адрес и маска в данных вопросах нас интересуют в двоичном счислении, так как машины понимает только нули и единицы и десятичные числа тут не катят.
Возьмем простой ip адрес 192.168.1.2 и маску 255.255.255.0
И так как рассчитать сколько в такой подсети будет хостов, адрес подсети, начальный конечный адрес и бродкаст?
Все просто для начала преобразуем маску в двоичное счисление и выясним префикс (это так штука которую иногда записывают в ip после слеша 192.168.1.0/20).
Как узнать префикс? В двоичном счислении маска 255.255.255.0 примет вид:
11111111.11111111.11111111.00000000 (как видно маска представлена в 32-разрядном виде и поделена по 8 бит точками, что соответствует ее обычному представлению). Маска накрывает ip адрес и указывает, где у нас адрес подсети, а сколько места остается на обозначение непосредственно хоста в сети. Проще говоря ул. Ленина д 8, где ул Ленина это адрес сети, а д 8 номер хоста.
В данной маске у нас 24 единицы - это и есть префикс ! 192.168.1.0/24.
Так как у нас в первых трех октетах маски идут одни единицы (а при логическом И единица дает 1 И 1 = 1, 1 И 0 = 0), то следовательно оставшиеся 8 нулей отдаются под нумерацию хостов. Как же узнать какое самое большое число поместиться в двоичной системе в 8 бит? Все просто надо возвести 2 в степень 8 = 256. Итого данная подсеть вместит в себя 256 адресов, НО отсчет начинается с НУЛЯ и это будет АДРЕСОМ СЕТИ, а последний адрес в нашем случае это 255 зарезервирован для БРОДКАСТА. Следовательно хосты можно нумеровать с 1 по 254.
ЕЩЕ РАЗ !!! В такой сети 192.168.1 - это адрес сети, а значение хостов может располагаться в диапазоне от 1 до 254.
Так же забываем про то что в одном октете хранится значение до 255, если оно превышает то делим число на 256 и выносим единицу в следующий откет(все считаем справа налево)