По существу, действительная маска подсети, когда она записана в двоичном формате, должна состоять только из последовательных 1-х, а затем 0-х, но без прерывистого микширования. То есть:
255.255.255.128 -> 11111111.11111111.11111111.10000000 is valid
255.255.255.0 -> 11111111.11111111.11111111.00000000 is valid
255.255.255.144 -> 11111111.11111111.11111111.10010000 is not valid
Изменить: Первые биты (ненулевые биты) также могут быть установлены в соответствии с сетевым адресом, важно то, что если вы выполняете логическую операцию И на IP с маской подсети, вы получаете сетевой адрес.
Host: 10.40.225.164 -> 0000 1010 . 0010 1000 . 1110 0001 . 1010 0100
Subnet M: 255.255.225.128 -> 1111 1111 . 1111 1111 . 1110 0001 . 1000 0000
Network: 10.40.225.128 -> 0000 1010 . 0010 1000 . 1110 0001 . 1000 0000