IP addresses use 32-bit binary numbers and are divided into classes. Classful addressing wastes many addresses and does not scale well. Subnetting and supernetting allow networks to be divided into subnets and supernetworks in a flexible way using variable-length subnet masks. Classless Inter-Domain Routing (CIDR) allows blocks of IP addresses to be variable lengths, improving address utilization.