Entiendo, pues voy a intentar explicar lo mas sencillamente posible mi manera de hacerlo, a ver si te sirve de algo:
Supongamos una dirección de red de clase C (si tienes alguna duda en especial con direcciones de la clase A o B me lo dices y te pongo algun ejemplo), por ejemplo: 192.168.5.0, y se nos pide que con esa direccion, creemos 8 subredes, indiquemos la mascara de subred que tenemos que utiliza, y pongamos las subredes que nos salen , con su direccion de broadcast y el rango disponible para asignar a los equipos.
Empezamos pasando la direccion IP a binario: 11000000.10101000.00000101.00000000
Para sacar las subredes, tenemos que utilizar el cuarto octeto de la dirección, el que esta a 0. Bien, cada bit de los ocho que forman el ultimo octeto, puede valer 0 o 1, por lo tanto tenemos para dos subredes. Hay que contar cuantos bits elevado a 2 nos hacen falta para crear 8 subredes. Con los 3 primeros bits, (32 = 8) tenemos suficiente para las 8 subredes.
La mascara por defecto para una IP de clase C es 255.255.255.0, con los tres primeros bits del ultimo octeto puestos a 1, tenemos la mascara: 255.255.255.224, que es la que vamos a utilizar para todas las subredes.
Ya tenemos la mascara, ahora tenemos que sacar las 8 subredes que nos hacen falta. Yo lo hago de esta forma:
Saco las combinaciones en binario que se pueden hacer con los tres primeros bits (los que tenemos que coger en este caso):
1ª -> x.x.x.00000000 -> x.x.x.0
2ª -> x.x.x.00100000 -> x.x.x.32
3ª -> x.x.x.01000000 -> x.x.x.64
4ª -> x.x.x.01100000 -> x.x.x.96
5ª -> x.x.x.10000000 -> x.x.x.128
6ª -> x.x.x.10100000 -> x.x.x.160
7ª -> x.x.x.11000000 -> x.x.x.192
8ª -> x.x.x.11100000 -> x.x.x.224
Ahí tenemos las 8 subredes que nos salen. De cada subred, la dirección de red es la primera, y para sacar la dirección de broadcast, pues miras la siguiente subred y le restas 1. El rango de equipos de cada subred se puede sacar facilmente, desde la direccion de red+1 hasta la dirección de broadcast-1.
Y así es como yo lo hago, seguramente tengas mas dudas o yo no lo haya explicado bien, pregunta sin problemas lo que no te quede claro.
A mi personalmente tambien me sirve tener en la mente lo siguiente:
Cada octeto está formado de 8 bits, cuyos valores serian algo así:
128 64--32--16 8 4 2 1
0----0---0---0--0-0-0-0
He tenido que poner con guiones eso porque los espacios solo permite uno, pero imagina que los guiones son espacios.
No se si eso te ha quedado claro, pero sumando todos esos numeros (cuando todos los bits estan a 1), te da 255. Entonces, cuando algunos bit estan a 1, puedes ir sumando sus valores mentalmente, y te puede ayudar bastante.
Espero que te haya servido la explicación, para cualquier duda ya sabes.
Un saludo.