A bit (b) is the basic unit of almost every modern computer system. The word bit is a contraction of the term binary digit.
A bit is the building block for the numbers, languages, and almost every aspect of computer operation. It is also the smallest (irreducible) unit of information in those computers.
A binary unit can only have two values or logical states, typically the values are 0 and 1. But the values could also be 'Off' and 'On', 'False' and 'True' or 'No' and 'Yes'.
You will notice that I have reversed the common convention of listing the positive value first. Normally, we would say 'On' and 'Off', 'True' and 'False', etc. The reason I have done this is to emphasize that the initial, default or unassigned state of a bit is normally zero or not set.
That is enough information to understand what a bit is. Read on if you want more understanding of binary systems, binary numbering and bitlength.
There are many binary systems in the world arounds us
The following table illustrates some other examples of binary systems.
Table 1 — Binary systems have two discrete states  
State 1  State 2  
Logic  False  True 
Decision making  No  Yes 
Electrical switch  Off  On 
Electrical charge 
 Negative 
+ Positive 
Probability  0%  100% 
Morse code 
· Dot 
– Dash 
Door  Closed  Open 
Lever  Down  Up 
Level  Low  High 
Binary systems are used to store information
In 1725, a textile loom was partially automated by using patterns recorded by punching holes in a paper roll. The loom was programmed by using the pattern to guide the machine. The nineteenthcentury piano roll operates on the same principle.
Two principles underly this method of storing and processing information:
 The pattern is stored even when the machine is not processing the pattern.
 When the machine is operating, nothing happens or changes unless there is a transition from no hole to a hole or from a hole to no hole. That is almost exactly what happens in modern computer processing. We just use electrical signals and newer types of media.
Those early paper rolls are part of the development of storage media that ultimately led to the media we use today.
Table 2 — Binary storage media  
State 1  State 2  
Paper tape (since 1725 but now obsolete)  No hole  Hole 
Cards (since 1728 but now obsolete)  No hole  Hole 
Magnetic tape (since 1951 but tending to become obsolete)  Not magnetized  Magnetized 
Magnetic memory (since 1951 but new developments)  Not magnetized  Magnetized 
Magnetic disk (since 1956)  Not magnetized  Magnetized 
Magnetic stripe card (since 1960 but increasingly chipbased)  Not magnetized  Magnetized 
Optical disk (since 1970, e.g. CD, DVD, BD)  No pit  Pit 
Binary counting is used to create more than two values
With one bit we can have two values. To get more than two values we can combine bits to create larger values.
The value of a computer bit is a binary or Base2 number, 0 or 1. The numbers we normally use are the decimal or Base10 digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) so counting looks very different in binary as shown in the following table. As we join bits together we can make larger binary numbers.
Our decimal system has a decimal progression where the order of magnitude is 10: 1, 10, 100, 1,000, 10,000, 100,000, 1,000,000, etc. The equivalent binary progression where we join bits together is also 10, 100, 1000, 10000, 100000, 1000000, etc. but the order of magnitude is only 2 so the decimal equivalents are a lot less: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1,024 etc.
Table 3 — Counting in binary  
Number of bits 
Binary Base2 
Decimal Base10 
Hexadecimal Base16 
1  0  0  0 
1  1  1  
2  10  2  2 
11  3  3  
3  100  4  4 
101  5  5  
110  6  6  
111  7  7  
4  1000  8  8 
1001  9  9  
1010  10  A  
1011  11  B  
1100  12  C  
1101  13  D  
1110  14  E  
1111  15  F  
5  10000  16  10 
At this point, I've introduced hexadecimal (Base16, 4bit) values because you are likely to see these numbers in many places. Large binary numbers are unweildy and very hard to remember so hexadecimal has been a useful way to remember them. For example, decimal 42 is not too hard to remember as binary 101010 or hexadecimal 2A. But decimal 1,000,000 is very hard to remember as binary 11,110,100,001,001,000,000 but much easier as hexadecimal F4240.
We can indicate the Base for any number by appending it as a subscripted number. For example, binary 10000_{2} = decimal 16_{10} = hexadecimal 10_{16}. This is equivalent to the last row of Table 3 above.
Try binary counting for yourself
Try binary counting using your fingers. With ten fingers you can store 2^{10} = 1,024 values.
 0 = finger down
 1 = finger up
Why can I count much higher than using my fingers for decimal counting? When counting in decimal the number zero only needs to be represented by one finger but instead we use all ten so nine add no additional information. Binary counting is the most efficient method to use two finger positions because both finger positions always indicate unique values.
If you use three finger positions then ternary or trinary counting will work better. Binary counting can still be used but it will only be easy if the number of finger positions is a multiple of two. So four positions would give 1,048,576 values. That is 1,024 multiplies by 1,024 .
Try binary numbering using Windows Calculator
You can also try the various numbering systems for yourself using Windows Calculator.
From the Start Menu, select 'All programs', select 'Accessories', select 'Calculator'.
When the Calculator window appears, on the main menu select 'View'. On the dropdown menu select 'Programmer' for Windows Vista to 7 or select 'Scientific' for Windows XP.
Here you can enter digits in Decimal, Hexadecimal, Binary, and even Octal which is Base8. For example, with the Dec button selected, type in the number 42 then select the button for the number system you want to view. Calculator displays the equivalent value for the number system you select.
Bit numbers you are likely to see on computer systems
Now let's have a look at some of the numbers you are likely to see on computer systems when you join bits together. If I have eight bits joined together then I can create an 8bit value, with sixteen bits I can create a 16bit value, and so on.
There are two values that you are likely to meet for each bitlength:
 The number of values that can be represented by that bitlength as shown in Table 4
 The actual values that can be stored by that bitlength as shown in Table 5.
The largest number that can be stored will be one less than the number of values because, as I said earlier, the default state for a bit is 0 so the first value will be zero. Using memory locations as an example, if I have 65,536 memory locations then the memory addresses will normally be from 0 to 65,535. The upper limit being one less than the number of memory locations.
Note that binary and hexadecimal representations don't use commas to separate every third order of magnitude as decimal does. Instead they tend to separate every fourth order (as four is a multiple of two) with a space or colon.
Table 4 — The number of values for a given bitlength  
Number of bits 
Decimal Base10 
Hexadecimal Base16 

8  256  100  
16  65,536  1 0000  
32  4,294,967,296  1 0000 0000  
64  18,446,744,073,709,551,616  1 0000 0000 0000 0000 
Now let's have a look at some of the numbers you are likely to see on computer systems when you join bits together. If I have eight bits joined together then I can create an 8bit value, with sixteen bits I can create a 16bit value, and so on.
Table 5 — The range of values for a given bitlength  
Number of bits 
Decimal Base10 
Hexadecimal Base16 

8  0 to 255  0 to FF  
16  0 to 65,535  0 to FFFF  
32  0 to 4,294,967,295  0 to FFFF FFFF  
64  0 to 18,446,744,073,709,551,615  0 to FFFF FFFF FFFF FFFF 
More binary numbers that you are likely to see
These numbers are smaller and are more likely to be seen in the detail of computing. They can be seen when editing disk data, viewing memory ranges, and working in the Windows registry.
Table 6 — The number of values available for a given bitlength  
Number of bits 
Binary Base2 
Decimal Base10 
Hexadecimal Base16 
1  1  1  1 
10  2  2  
2  100  4  4 
3  1000  8  8 
4  1 0000  16  10 
5  10 0000  32  20 
6  100 0000  64  40 
7  1000 0000  128  80 
8  1 0000 0000  256  100 
9  10 0000 0000  512  200 
10  100 0000 0000  1,024  400 
11  1000 0000 0000  2,048  800 
12  1 0000 0000 0000  4,096  1000 
13  10 0000 0000 0000  8,192  2000 
14  100 0000 0000 0000  16,384  4000 
15  1000 0000 0000 0000  32,768  8000 
16  1 0000 0000 0000 0000  65,536  1 0000 
As I said above, the lowest value is usually zero so the largest number will be one less than the number of values. These numbers look a lot different than in Table 6.
Table 7 — Maximum value for a given bitlength  
Number of bits 
Binary Base2 
Decimal Base10 
Hexadecimal Base16 
1  0  0  0 
1  1  1  
2  11  3  3 
3  111  7  7 
4  1111  15  F 
5  1 1111  31  1F 
6  11 1111  63  3F 
7  111 1111  127  7F 
8  1111 1111  255  FF 
9  1 1111 1111  511  1FF 
10  11 1111 1111  1,023  3FF 
11  111 1111 1111  2,047  7FF 
12  1111 1111 1111  4,095  FFF 
13  1 1111 1111 1111  8,191  1FFF 
14  11 1111 1111 1111  16,383  3FFF 
15  111 1111 1111 1111  32,767  7FFF 
16  1111 1111 1111 1111  65,535  FFFF 
Related Links
