(a) is necessarily 255.255.224.0

(b) is necessarily 255.255.240.0

(c) is necessarily 255.255.248.0

(d) could be any one of 255.255.224.0, 255.255.240.0, 255.255.248.0

My attempt :

For class B network broadcast address first two octet or 16 bits should be all are 1 for preserving class B network address (255.255.0.0) , now given address 144.16.95.255 is same as 144.16.010 11111.1111 1111 , clearly last 13 bits all are 1 contiguously , it shows that last 13 bits for hosts addresses , in third octet first 3 bits should be for subnet address . It should be preserve in broadcast address . So that 3 bits should all are 1 in subnet mask . therefore , resultant subnet mask will be 1111 1111. 1111 1111. 111 00000. 0000 0000 = 255.255.224.0

Hence , option (a) is true as per my calculation.

Can you explain it in a formal way, please?

• You need to actually use the mask against the addresses. Convert both the address and the mask to binary, perform a logical `AND` to get the subnet. You can perform a logical `NOT` on the mask to get the inverse mask. Add the inverse mask to the subnet to get the broadcast address. Convert back to decimal to see the broadcast address. – Ron Maupin Feb 10 '16 at 15:14

The explanation:

When netmask is 255.255.224.0 we have 5 bits of third octect for host, then the networks are:

• 144.16.0.0
• 144.16.32.0
• 144.16.64.0

this last one goes from 144.16.64.0 to 144.16.95.255

When netmask is 255.255.240.0 we have 4 bits of third octect for host, then the networks are:

• 144.16.0.0
• 144.16.16.0
• 144.16.32.0
• 144.16.48.0

And so on until we got to 144.16.80.0 that goes to 144.16.95.255

When netmask is 255.255.248.0 we have 3 bits of third octect for host, then the networks are:

• 144.16.0.0
• 144.16.8.0
• 144.16.16.0
• 144.16.24.0

And so on until we got to 144.16.88.0 that goes to 144.16.95.255