A practical walkthrough — no prior networking background assumed. By the end, you'll be able to work out a subnet by hand, and know exactly what the calculator is doing for you.
An IPv4 address like 192.168.1.10 is really a 32-bit number, just written as four 8-bit chunks ("octets") in decimal for readability. Each octet ranges from 0 to 255.
Written in binary, 192.168.1.10 is:
11000000.10101000.00000001.00001010
A subnet mask splits that 32-bit address into two parts: the network part (which device/router this belongs to) and the host part (which specific machine on that network).
The mask is also a 32-bit number, written the same way — but it only ever contains a run of 1s followed by a run of 0s. Every 1 marks a network bit; every 0 marks a host bit.
| CIDR | Mask | Binary |
|---|---|---|
| /24 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| /25 | 255.255.255.128 | 11111111.11111111.11111111.10000000 |
| /26 | 255.255.255.192 | 11111111.11111111.11111111.11000000 |
The /24 in an address like 192.168.1.10/24 is CIDR notation — it's just a shorthand for "the first 24 bits are network bits."
To find the network address, line up the IP and the mask in binary, and keep only the bits where the mask has a 1 (this is a bitwise AND).
For 192.168.1.10/26: the mask is 255.255.255.192. In the last octet, 192 in binary is 11000000 — so only the top 2 bits of that octet are network bits.
10 = 00001010 → keeping only the top 2 bits → 00000000 → network address is 192.168.1.0/26.
The broadcast address is the network address with all host bits set to 1 — it's the "everyone on this subnet" address.
For a /26 (64 addresses total: 26), the range is 192.168.1.0 to 192.168.1.63. The first address (.0) is the network address, the last (.63) is the broadcast — neither is assignable to a device. The usable host range is everything in between: 192.168.1.1 – 192.168.1.62 (62 usable hosts).
You don't need to convert to binary every time. Once you know the CIDR, the size of each subnet follows a pattern based on the last non-.0/.255 octet:
| CIDR | Block size | Addresses per subnet |
|---|---|---|
| /24 | 256 | 256 (254 usable) |
| /25 | 128 | 128 (126 usable) |
| /26 | 64 | 64 (62 usable) |
| /27 | 32 | 32 (30 usable) |
| /28 | 16 | 16 (14 usable) |
| /29 | 8 | 8 (6 usable) |
| /30 | 4 | 4 (2 usable — typical for point-to-point links) |
Formula: block size = 2^(32 - CIDR) for the whole subnet, minus 2 for usable hosts (network + broadcast reserved).
VLSM (Variable Length Subnet Masking) means using different-sized subnets within the same network, instead of one fixed size everywhere. In practice: a point-to-point router link only needs 2 usable addresses (a /30), while an office floor might need 50 (a /26). VLSM lets you size each subnet to what it actually needs, instead of wasting addresses on a one-size-fits-all scheme.
Our calculator's split tool automates exactly this — enter a starting network and how many hosts each piece needs, and it lays out the subnets for you.
Now that you know the theory, put it into practice: use the Subneter calculator to check your work, or try the subnetting quiz to test what you've learned.