540 likes | 614 Vues
CMSC 150 data representation. CS 150: Mon 30 Jan 2012. What Happens When…. Steps Of An Executing Program. Initially, the program resides as a (binary) file on the disk. Steps Of An Executing Program. When you click an icon to start a program…. Steps Of An Executing Program.
E N D
CMSC 150data representation CS 150: Mon 30 Jan 2012
Steps Of An Executing Program Initially, the program resides as a (binary) file on the disk
Steps Of An Executing Program When you click an icon to start a program…
Steps Of An Executing Program the program is copied from disk into memory (RAM)…
Steps Of An Executing Program so the program can be executed by the CPU…
A Program in Memory 01010010 127 128 01010110 129 01110010 130 11010010 • Program: consists of instructions & data • Instructions & data stored together in memory 10110010 131 132 10111110 133 11100000 134 00000001 . . . … 01010010 11100000 …
A Program in Memory 01010010 127 128 01010110 129 01110010 130 11010010 10110010 131 Instructions 132 10111110 133 11100000 134 00000001 . . . … 01010010 11100000 …
A Program in Memory 01010010 127 128 01010110 129 01110010 130 11010010 10110010 131 Instructions 132 10111110 133 11100000 134 00000001 . . . Data … 01010010 11100000 …
A Program in Memory 01010010 127 128 01010110 129 01110010 130 11010010 10110010 131 Instructions 132 10111110 133 11100000 134 00000001 . . . Data … 01010010 11100000 How do we interpret these 0's and 1's? …
The Decimal Number System • Deci- • Base is ten • first (rightmost) place: ones (i.e., 100) • second place: tens (i.e., 101) • third place: hundreds (i.e., 102) • … • Digits available: 0, 1, 2, …, 9 (ten total)
The Binary Number System • Bi- (two) • bicycle, bicentennial, biphenyl • Base two • first (rightmost) place: ones (i.e., 20) • second place: twos (i.e., 21) • third place: fours (i.e., 22) • … • Digits available: 0, 1 (two total)
Lingo • Bit (b): one binary digit (0 or 1) • Byte (B): eight bits • Prefixes: • Kilo (K) = 210 = 1024 • Mega (M) = 220 = 1,048,576 = 210 K • Giga (G) = 230 = 1,073,741,824 = 210 M • Tera (T) = 240 = 1,099,511,627,776 = 210 G • Peta (P) = 250 = 1,125,899,906,842,624 = 210 T • … • Yotta (Y) = 280 = 1,208,925,819,614,629,174,706,176 = 230 P
Representing Decimal in Binary • Moving right to left, include a "slot" for every power of two ≤ your decimal number • Then, moving left to right: • Put 1 in the slot if that power of two can be subtracted from your total remaining • Put 0 in the slot if not • Continue until all slots are filled • filling to the right with 0's as necessary
Example: A Famous Number • Anyone recognize this number ? 100001000101111111101101
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = ?????????????????????2 • What is 210 ?
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = ?????????????????????2 • What is 210 ? 220 ?
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = ?????????????????????2 • What is 210 ? 220 ? 230 ?
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = ?????????????????????2 • What is 210 ? 220 ? 230 ? 225 ?
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = ?????????????????????2 • What is 210 ? 220 ? 230 ? 225 ? • Need 24 places (bits) • 223 = 8,388,608
Example: A Famous Number • Anyone recognize this number ? • 8,675,30910 = 1000010001011111111011012 • Fewer available digits in binary more space required for representation
Converting Binary to Decimal • For each 1, add the corresponding power of two • 10100101111012
Converting Binary to Decimal • For each 1, add the corresponding power of two • 10100101111012 = 530910
Now You Get The Joke THERE ARE 10 TYPES OF PEOPLE IN THE WORLD: THOSE WHO CAN COUNT IN BINARY AND THOSE WHO CAN'T
Why Binary? • Circuits: low voltage == 0, high voltage == 1
Why Binary? • Circuits: low voltage == 0, high voltage == 1
Why Binary? • Circuits: low voltage == 0, high voltage == 1 Half Adder A + B sum A + B carry
An Alternative to Binary? • 1000010001011111111011012 = 8,675,30910 • 1000001001011111111011012 = 8,544,23710
An Alternative to Binary? • 1000010001011111111011012 = 8,675,30910 • 1000001001011111111011012 = 8,544,23710 What if this was km to landing?
The Hexadecimal Number System • Hexa- (six) Decimal (ten) • Base sixteen • first (rightmost) place: ones (i.e., 160) • second place: sixteens (i.e., 161) • third place: two-hundred-fifty-sixes (i.e., 162) • … • Digits available: sixteen total 0, 1, 2, …, 9, A, B, C, D, E, F
Wikipedia says… • Donald Knuth has pointed out that the etymologically correct term is "senidenary", from the Latin term for "grouped by 16". • The terms "binary", "ternary" and "quaternary" are from the same Latin construction, and the etymologically correct term for "decimal" arithmetic is "denary". • Schwartzman notes that the pure expectation from the form of usual Latin-type phrasing would be "sexadecimal", but then computer hackers would be tempted to shorten the word to "sex".
Using Hex • Can convert decimal to hex and vice-versa • process is similar, but using base 16 and 0-9, A-F • Most commonly used as a shorthand for binary • Avoid this
More About Binary • How many different things can you represent using binary: • with only one slot (i.e., one bit)? • with two slots (i.e., two bits)? • with three bits? • with n bits?
More About Binary • How many different things can you represent using binary: • with only one slot (i.e., one bit)? 2 • with two slots (i.e., two bits)? 22 = 4 • with three bits? 23 = 8 • with n bits? 2n
Binary vs. Hex • One slot in hex can be one of 16 values 0, 1, 2, …, 9, A, B, C, D, E, F • How many bits to represent one hex digit? • I.e., how many bits to represent 16 different things?
Binary vs. Hex • One slot in hex can be one of 16 values 0, 1, 2, …, 9, A, B, C, D, E, F • How many bits to represent one hex digit? • 4 bits can represent 24 = 16 different values
Converting Binary to Hex • Moving right to left, group into bits of four • Convert each four-group to corresponding hex digit • 1000010001011111111011012
Converting Binary to Hex • Moving right to left, group into bits of four • Convert each four-group to corresponding hex digit • 1000 0100 0101 1111 1110 11012
Converting Binary to Hex • Moving right to left, group into bits of four • Convert each four-group to corresponding hex digit • 1000 0100 0101 1111 1110 11012 • 8 4 5 F E D • 1000010001011111111011012 = 845FED16
Converting Hex to Binary • Convert each hex digit to four-bit binary equivalent • BEEF16 = ????2
Converting Hex to Binary • Convert each hex digit to four-bit binary equivalent • BEEF16 = 1011 1110 1110 11112
Representing Different Information • So far, everything has been a number • What about characters? Punctuation? • Idea: • put all the characters, punctuation in order • assign a unique number to each • done! (we know how to represent numbers)
ASCII: American Standard Code for Information Interchange 'A' = 6510 = 010000012 'c' = 9910 = 011000112 '8' = 5610 = 001110002
ASCII: American Standard Code for Information Interchange 256 total characters… How many bits needed?
The Problem with ASCII • What about Greek characters? Chinese? • UNICODE: use more bits • UTF-8: use 1-4 eight-bit bytes • 1,112,064 “code points” • backward compatible w/ ASCII • How many characters could we represent w/ 32 bits? • 232 = 4,294,967,296
You Control The Information • What is this? 01001101
You Control The Information • What is this? 01001101 • Depends on how you interpret it: • 010011012 = 7710 • 010011012 = 'M' • 0100110110 = one million one thousand one hundred & one • A machine-language instruction • You must be clear on representation and interpretation