Editor's Note: Also reading about the Cisco CCENT ICND1 100101 Exam? You'll find the IP Addressing prep for that alternate step towards CCNA to be identical to the CCNA Routing and Switching exam covered here.
The exam requires a perfect fluency in subnetting. Success requires speed and accuracy in answering the many questions you will see on this topic. The key to this level of fluency is practice—you must work at your skills until they become second nature.
The following sections discuss binary and hexadecimal numbering systems as compared with the more familiar decimal system. An understanding of binary, in particular, is crucial to success on the test as it is fundamental to computer systems in general, and to topics such as subnetting, access lists, routing, and route summarization. This chapter also looks at the relationship between the IP address and subnet mask in more detail, as well as how it can be manipulated for more efficient network functionality using route summarization. Finally, IP Version 6 is introduced and some of its features are explained.
Binary
Binary is the language of digital electronic communication. Binary is another name for Base 2 numbering. Our usual numbering system is Base 10, in which a single character or column can represent one of 10 values: 0, 1, 2, 3, 4, 5, 6, 7, 8, or 9. The first column indicates how many ones there are in a given value. To represent a value greater than 9, we need another column, which represents how many “tens” there are; if the value we want to represent is greater than 99, we use another column for the “hundreds,” and so on. You might notice that each additional column is ten times greater than the preceding one: ones, tens, hundreds, thousands, and so forth—all “powers of 10”: 100, 101, 102, 103, and so on. Base 10 is easy because most of us have 10 fingers and have known how to count from an early age.
In binary, or Base 2, a single character or column can represent one of only two values: 0 or 1. The next column represents how many “twos” there are; the next column how many “fours,” and so on. You’ll notice here that the value of each additional column is two times greater than the previous—all “powers of 2”: 20, 21, 22, 23, and so on. This is not a coincidence.
Given that a Base 2 or binary column can have only two possible values (0 or 1), this makes it easy to represent a binary value as an electrical value: either off (0) or on (1). Computers use binary because it is easily represented as electrical signals in memory or digital values on storage media. The whole system works because computers are quick at computing arithmetic, and as you’ll learn, pretty much all computer operations are really just fast binary math.
Let’s take a look at some Base 10 (or decimal) to binary conversions. Take the decimal number 176. Those three digits tell us that we have one 100, plus seven 10s, plus six 1s. Table 3.1 illustrates how decimal numbers represent this distribution of values.
TABLE 3.1 Decimal Values
100,000s 
10,000s 
1000s 
100s 
10s 
1s 
0 
0 
0 
1 
7 
6 
Notice that we have some 0s in the highvalue columns; we can drop those from the beginning if we want to. You will not have to analyze decimal numbers in this way on the exam; we are simply demonstrating how Base 10 works so it can be compared to Base 2 and Base 16 in the same way.
In binary, the columns have different values—the powers of 2. Table 3.2 lists the values of the lowest 8 bits in binary.
TABLE 3.2 Binary Values
128 
64 
32 
16 
8 
4 
2 
1 
To represent the decimal number 176 in binary, we need to figure out which columns (or bit positions) are “on” and which are “off.” Now, because this is arithmetic, there are a few different ways to do this.
Start with the decimal number you want to convert:
176
Next, look at the values of each binary bit position and decide if you can subtract the highest column value and end up with a value of 0 or more. Ask yourself: “Can I subtract 128 from 176?” In this case, 176 – 128 = 48.
Yes, you can subtract 128 from 176 and get a positive value, 48. Because we “used” the 128 column, we put a 1 in that column, as shown in Table 3.3.
TABLE 3.3 Building a Binary String, Part 1
128 
64 
32 
16 
8 
4 
2 
1 
1 







Now, we try to subtract the next highest column value from the remainder. We get 176 – 128 = 48. We take the 48 and subtract 64 from it.
Notice that you can’t do this without getting a negative number; this is not allowed, so we can’t use the 64 column. Therefore, we put a 0 in that column, as shown in Table 3.4.
TABLE 3.4 Building a Binary String, Part 2
128 
64 
32 
16 
8 
4 
2 
1 
1 
0 






Move along and do the math for the rest of the columns: 48 – 32 = 16. We then subtract 16 from 16 and get 0.
Note that when you get to 0, you are finished—you need to only fill the remaining bit positions with 0s to complete the 8bit string. So, we used only the 128 column, the 32 column, and the 16 column. Table 3.5 is what we end up with.
TABLE 3.5 Completed Binary Conversion
128 
64 
32 
16 
8 
4 
2 
1 
1 
0 
1 
1 
0 
0 
0 
0 
176 decimal = 10110000 binary.
If you add up 128 + 32 + 16, you get 176. That is how you convert from binary to decimal: Simply add up the column values where there is a 1.