| ★ wanayoo — archive 1999 http://howstuffworks.com/bytes.htm | Nouvelle recherche | Portail wanayoo |
If you have used a computer for more than five minutes, then you have heard the words bits and bytes. Both RAM and hard disk capacities are measured in bytes. So are file sizes when you examine them in a file viewer. For example, you might hear an advertisement that says "This computer has a 32-bit Pentium processor with 64 megabytes of RAM and 2.1 gigabytes of hard disk space." Many of the pages in How Stuff Works also talk about bytes (for example, the page on CDs). In this edition of How Stuff Works we will discuss bits and bytes so that you have a complete understanding.
Decimal Numbers
The easiest way to understand bits is to compare them to something you know: digits.
A digit is a single place that can hold numerical values between 0 and 9. Digits are
normally combined together in groups to create larger numbers. For example, 6357 has
4 digits. It is understood that in the number 6357 that the 7 is filling the "1s place",
while the 5 is filling the 10s place, the 3 is filling the 100s place and the 6 is filling the 1000s place.
So you could express things this way if you wanted to be explicit:
That should all feel comfortable - we all work with decimal digits every day and have no problems. The neat thing about number systems is that there is nothing that forces you to have 10 different values in a digit. Our "base-10" number system likely grew up because we have 10 fingers, but if we happened to evolve to have 8 fingers instead we would probably have a base-8 number system. You can have base-anything numbers systems. In fact, there are lots of good reasons to use different bases in different situations.
Bits
Computers happen to operate using the base-2 number system, also known as the binary number system
(just like the
base-10 number system is known as the decimal number system). The reason computers use the base-2 system
is because it makes it a lot easier to implement them with current electronic technology. You could wire
up and build computers that operate in base-10, but they would be fiendishly expensive right now.
On the other hand, base-2 computers are dirt cheap.
So computers use binary numbers, and therefore use binary digits in place of decimal digits. The word bit is a shortening of the words "Binary digIT". Where decimal digits have 10 possible values ranging from 0 to 9, bits have only 2 possible values: 0 and 1. Therefore a binary number is composed of only 0s and 1s, like this: 1011. How do you figure out what the value of the binary number 1011 is? You do it in the same way we did it above for 6357, but you use a base of 2 instead of a base of 10. So:
0 = 0 1 = 1 2 = 10 3 = 11 4 = 100 5 = 101 6 = 110 7 = 111 8 = 1000 9 = 1001 10 = 1010 11 = 1011 12 = 1100 13 = 1101 14 = 1110 15 = 1111 16 = 10000 17 = 10001 18 = 10010 19 = 10011 20 = 10100
When you look at this sequence, 0 and 1 are the same for decimal and binary number systems. At the number 2 you see carrying first take place in the binary system. If a bit is 1, and you add 1 to it, the bit becomes zero and the next bit becomes 1. In the transition from 15 to 16 this effect roles over through 4 bits, turning 1111 into 10000.
Bytes
Bits are rarely seen alone in computers. They are almost always bundled together into 8-bit
collections, and these collections are called bytes. Why are there 8 bits in a byte?
A similar question is, "Why are there 12 eggs in a dozen?" The 8-bit byte is something that people
settled on through trial and error over the past 50 years.
With 8 bits in a byte, you can represent 256 values ranging from 0 to 255, as shown here:
0 = 00000000
1 = 00000001
2 = 00000010
...
254 = 11111110
255 = 11111111
In the How Stuff Works article on CDs you saw that
a CD uses 2 bytes, or 16 bits, per sample. That gives each sample a range from
0 to 65,535, like this:
0 = 0000000000000000
1 = 0000000000000001
2 = 0000000000000010
...
65534 = 1111111111111110
65535 = 1111111111111111
|
Standard ASCII Character Set The first 32 values (0 through 31) are codes for things like carriage return and line feed. The space character is the 33rd value, followed by punctuation, digits, upper case characters and lower case characters.
0 NUL
1 SOH
2 STX
3 ETX
4 EOT
5 ENQ
6 ACK
7 BEL
8 BS
9 TAB
10 LF
11 VT
12 FF
13 CR
14 SO
15 SI
16 DLE
17 DC1
18 DC2
19 DC3
20 DC4
21 NAK
22 SYN
23 ETB
24 CAN
25 EM
26 SUB
27 ESC
28 FS
29 GS
30 RS
31 US
32
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 DEL
|
The table at the right shows the 127 standard ASCII codes. Computers store text documents, both on disk and in memory, using these codes. For example, if you use Notepad in Windows 95/98 to create a text file containing the words, "Four score and seven years ago", Notepad would use one byte of memory per character (including one byte for each space character between the words (ASCII value 32)). When Notepad stores the sentence in a file on disk, the file will also contain one byte per character and space. Try this experiment: open up a new file in Notepad and insert the sentence, "Four score and seven years ago" in it. Save the file to disk under the name getty.txt. Then use the explorer and look at the size of the file. You will find that the file has a size of 30 bytes on disk: one byte for each character. If you add another word to the end of the sentence and re-save it, the file size will jump to the appropriate number of bytes. Each character consumes a byte.
If you were to look at the file as a computer looks at it, you would find that each byte contains not a letter but a number. The number is the ASCII code corresponding to the character. So on disk The numbers for the file look like this:
F o u r a n d s e v e n ... 70 111 117 114 32 97 110 100 32 115 101 118 101 110 32 ...
Lots of Bytes
When you start talking about lots of bytes, you get into prefixes like Kilo, Mega and Giga, as in
Kilobyte, Megabyte and Gigabyte (also shortened to K, M and G, as in Kbytes, Mbytes and Gbytes or
KB, MB and GB). The following table shows the multipliers:
Name abbrev Size ---- ------ ---- Kilo K 2^10 = 1,024 Mega M 2^20 = 1,048,576 Giga G 2^30 = 1,073,741,824 Tera T 2^40 = 1,099,511,627,776 Peta P 2^50 = 1,125,899,906,842,624 Exa E 2^60 = 1,152,921,504,606,846,976 Zetta Z 2^70 = 1,180,591,620,717,411,303,424 Yotta Y 2^80 = 1,208,925,819,614,629,174,706,176
Binary Math
Binary math works just like decimal math, except that the value of each bit can
be only 0 or 1. To get a feel for binary math, let's
start with decimal addition and see how it works. Assume we want to add 452 and 751:
452 + 751 --- 1203
Binary addition works exactly the same way:
010 + 111 --- 1001
To see how boolean addition is implemented using gates, see the How Stuff Works article on Boolean logic.
Recapping
So to recap:
|
How Stuff Works (http://www.howstuffworks.com) is a production of BYG Publishing, Inc. http://www.bygpub.com - questions@bygpub.com P.O. Box 40492 - Raleigh, NC 27629 |
© 1998 BYG Publishing, Inc. All rights reserved.