Решение: Минимальная маска сети
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Маска записывается в виде четырёх байтов, каждый из которых представлен десятичным числом. В маске сначала, в старших разрядах, стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 220.127.169.23 адрес сети равен 220.127.160.0. Каково наименьшее возможное количество единиц в разрядах маски?
Решение по шагам
4 шагаПервые два байта IP-адреса и адреса сети совпадают. При последовательной маске первые 16 разрядов должны быть единицами.
$$16$$Переведём третьи байты в двоичную систему:
$$169_{10}=10101001_2,\quad 160_{10}=10100000_2$$Минимальная маска третьего байта, дающая адрес 160 при побитовом И с числом 169, имеет вид $11100000_2$.
$$10101001_2\mathbin{\&}11100000_2=10100000_2$$В третьем байте маски три единицы. Общее количество единиц равно:
$$16+3=19$$Где здесь ошибаются
Считать количество единиц только в третьем байте и получить 3.
Использовать маску с отдельными единицами после нулей, хотя единицы в маске должны идти непрерывно от старшего разряда.
Перепутать побитовую конъюнкцию с обычным сложением чисел.