Understanding the IP address space requires a command of the binary mathematics on which it is founded. Although that might sound somewhat daunting, it is quite simple. You're just counting with just two numbers! Table 6-2 and shows how to symbolize the decimal number 128 in binary digits.
Tables 6-2 and 6-3 is that Table 6-3 only goes up to 2 to the 7th power. IP addresses consist of 4 groups of 8 bits each, so there is no need for numbers higher than 2 to the 7th power.
One practical implication of Table 6-3 is that an upper limit is imposed on the decimal value of each part of an IP address. Adding 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 equals 255. Thus, any of the 4 parts of an IP address can only range from 0 to 255. Table 6-4 presents the building blocks of this capability. If the Base10 equivalent does not appear intuitive, check the decimal value of the Base2 columns in Table 6-3.
Base2 | Base10 Equivalent |
---|---|
00000001 | 1 |
00000010 | 2 |
00000100 | 4 |
00001000 | 8 |
00010000 | 16 |
00100000 | 32 |
01000000 | 64 |
10000000 | 128 |
Table 6-4 shows just the basics of counting in Base2. For simplicity's sake, you see how to count in the powers of 2: 1, 2, 4, 8, 16, 32, 64, and 128. You can tell they are powers of 2 because each is exactly a doubling of the number before it. Notice the binary number for each of these decimal numbers; it requires just 1 bit to be equal to 1. The others are 0s.
However, the same 8-bit binary string can be used to count from 0 to 255. Such values are calculated by summing the decimal values of each column populated with a 1. To actually count to numbers that aren't powers of 2 requires you to have more than 1 of the 8 bits set equal to 1. Table 6-5 shows more of how this works.
Base2 | Base10 Equivalent |
---|---|
00000000 | 0 |
00000001 | 1 |
00000010 | 2 |
00000011 | 3 |
00000100 | 4 |
00000101 | 5 |
00000110 | 6 |
00000111 | 7 |
00001000 | 8 |
00001001 | 9 |
00001010 | 10 |
00001011 | 11 |
00001100 | 12 |
00001101 | 13 |
00001110 | 14 |
00001111 | 15 |
00010000 | 16 |
… | … |
11111111 | 255 |
Converting binary to decimal, therefore, requires you to sum the decimal equivalents of all columns in the binary string that have a 1 instead of a 0. This summation must be done separately for each group of 8 bits in the IP address.