Page 39 - Introduction to Programming with Java: A Problem Solving Approach
P. 39
Main memory contains storage boxes, and each storage box contains a piece of information. For ex- ample, if a program stores our last name, Dean, it uses eight storage boxes: one for the first half of D, one for the second half of D, one for the first half of e, one for the second half of e, and so on. After storing the four letters, the program will probably need to retrieve them at some point later on. For information to be retriev- able, it must have an address. An address is a specifiable location. A postal address uses street, city, and zip code values to specify a location. A computer address uses the information’s position within main memory to specify a location. Main memory’s first storage box is at the zero position, so we say it’s at address 0. The second storage box is at the one position, so we say it’s at address 1. See Figure 1.3. It shows Dean stored in memory starting at address 50,000.
1.2 Hardware Terminology 5
Memory Address contents
Figure 1.3 The characters D, e, a, n stored in memory starting at address 50,000
D
e
a
n
50,000 50,001 50,002 50,003 50,004 50,005 50,006 50,007
· · ·
· · ·
Apago PDF Enhancer
It’s important to understand the formal terminology when talking about the size of main memory. Sup- pose you’re buying a computer and you want to know how big a computer’s main memory is. If you ask a sales person how many “storage boxes” it contains, you’ll probably get a perplexed look. What you need to do is ask about its capacity—that’s the formal term for its size. If you ask for the main memory’s capacity, the salesperson will say something like, “It’s one gigabyte.” You already know that giga means billion. A byte refers to the size of one storage box. So a one gigabyte capacity main memory holds one billion storage boxes.
Let’s describe storage boxes in more detail. You know that storage boxes can hold characters, like the letter D. But computers aren’t very smart—they don’t understand the alphabet. They only understand 0’s and 1’s. So computers map each alphabet character to a series of sixteen 0’s and 1’s. For example, the letter D is 00000000 01000100. So in storing the letter D, main memory actually stores 00000000 01000100. Each of the 0’s and 1’s is called a bit. And each of the eight-bit groupings is called a byte.
Are you wondering why computers use 0’s and 1’s? Computers understand only high-energy signals ver- sus low-energy signals. When a computer generates a low-energy signal, that’s a 0. When a computer gener- ates a high-energy signal, that’s a 1.
You know that computers store characters as 0’s and 1’s, but did you know that computers also store numbers as 0’s and 1’s? Formally, we say that computers use the binary number system. The binary number system uses just two digits, 0 and 1, to represent all numbers. For example, computers store the number 19 as 32 bits, 00000000 00000000 00000000 00010011. The reason those 32 bits represent 19 is that each 1-value bit represents a power of 2. Note that there are three 1-value bits. They are at positions 0, 1, and 4, where the positions start at 0 from the right side. A bit’s position determines its power of two. Thus, the rightmost bit, at position 0, represents 2 raised to the power 0, which is 1 (20 1). The bit at position 1 represents