Network Administration: Understanding Binary
Before you can understand the details of how IP addressing works, you need to understand how the binary numbering system works because binary is the basis of IP addressing.
Binary is a counting system that uses only two numerals: 0 and 1. In the decimal system (with which most people are accustomed), you use 10 numerals: 0–9.In an ordinary decimal number — such as 3,482 — the rightmost digit represents ones; the next digit to the left, tens; the next, hundreds; the next, thousands; and so on.
These digits represent powers of ten: first 10^{0} (which is 1); next, 10^{1} (10); then 10^{2 }(100); then 10^{3 }(1,000); and so on. In binary, you have only two numerals rather than ten, which is why binary numbers look somewhat monotonous, as in 110011, 101111, and 100001.
The positions in a binary number (called bits rather than digits) represent powers of two rather than powers of ten: 1, 2, 4, 8, 16, 32, and so on. To figure the decimal value of a binary number, you multiply each bit by its corresponding power of two and then add the results. The decimal value of binary 10111, for example, is calculated as follows:
1 × 20 = 1 × 1 = 1
+ 1 × 21 = 1 × 2 = 2
+ 1 × 22 = 1 × 4 = 4
+ 0 × 23 = 0 × 8 = 0
+ 1 × 24 = 1 × 16 = _16
^{ } 23
Fortunately, converting a number between binary and decimal is something a computer is good at — so good, in fact, that you’re unlikely ever to need to do any conversions yourself. Instead, the point is to have a basic understanding of how computers store information and — most important — to understand how the binary counting system works.
Here are some of the more interesting characteristics of binary and how the system is similar to and differs from the decimal system:

In decimal, the number of decimal places allotted for a number determines how large the number can be. If you allot six digits, for example, the largest number possible is 999,999. Because 0 is itself a number, however, a sixdigit number can have any of 1 million different values.
Similarly, the number of bits allotted for a binary number determines how large that number can be. If you allot eight bits, the largest value that number can store is 11111111, which happens to be 255 in decimal.

To quickly figure how many different values you can store in a binary number of a given length, use the number of bits as an exponent of two. An eightbit binary number, for example, can hold 2^{8} values. Because 2^{8} is 256, an eightbit number can have any of 256 different values. This is why a byte — eight bits — can have 256 different values.

This “powers of two” thing is why computers don’t use nice, even, round numbers in measuring such values as memory or disk space. A value of 1K, for example, is not an even 1,000 bytes: It’s actually 1,024 bytes because 1,024 is 2^{10}. Similarly, 1MB is not an even 1,000,000 bytes but instead 1,048,576 bytes, which happens to be 2^{20}.
One basic test of computer nerddom is knowing your powers of two because they play such an important role in binary numbers. Just for the fun of it, but not because you really need to know, the table below lists the powers of two up to 32.
Power  Bytes  Kilobytes  Power  Bytes  K, MB, or GB 

2^{1}  2  2^{17}  131,072  128K  
2^{2}  4  2^{18}  262,144  256K  
2^{3}  8  2^{19}  524,288  512K  
2^{4}  16  2^{20}  1,048,576  1MB  
2^{5}  32  2^{21}  2,097,152  2MB  
2^{6}  64  2^{22}  4,194,304  4MB  
2^{7}  128  2^{23}  8,388,608  8MB  
2^{8}  256  2^{24}  16,777,216  16MB  
2^{9}  512  2^{25}  33,554,432  32MB  
2^{10}  1,024  1K  2^{26}  67,108,864  64MB 
2^{11}  2,048  2K  2^{27}  134,217,728  128MB 
2^{12}  4,096  4K  2^{28}  268,435,456  256MB 
2^{13}  8,192  8K  2^{29}  536,870,912  512MB 
2^{14}  16,384  16K  2^{30}  1,073,741,824  1GB 
2^{15}  32,768  32K  2^{31}  2,147,483,648  2GB 
2^{16}  65,536  64K  2^{32}  4,294,967,296  4GB 