cpsc 121 models of computation
play

CPSC 121: Models of Computation Module 3: Representing Values in a - PowerPoint PPT Presentation

CPSC 121: Models of Computation Module 3: Representing Values in a Computer Module 3: Representing Values The 4 th online quiz is due Monday, September 23 rd at 17:00. Assigned reading for the quiz: Epp, 4 th edition: 2.3 Epp, 3 rd edition: 1.3


  1. CPSC 121: Models of Computation Module 3: Representing Values in a Computer

  2. Module 3: Representing Values The 4 th online quiz is due Monday, September 23 rd at 17:00. Assigned reading for the quiz: Epp, 4 th edition: 2.3 Epp, 3 rd edition: 1.3 Rosen, 6 th edition: 1.5 up to the bottom of page 69. Rosen, 7 th edition: 1.6 up to the bottom of page 75. CPSC 121 – 2013W T1 2

  3. Module 3: Representing Values The 5 th online quiz is tentatively due Monday, September 30 th at 17:00. Assigned reading for the quiz: Epp, 4 th edition: 3.1, 3.3 Epp, 3 rd edition: 2.1, 2.3 Rosen, 6 th edition: 1.3, 1.4 Rosen, 7 th edition: 1.4, 1.5 CPSC 121 – 2013W T1 3

  4. Module 3: Representing Values By the start of this class you should be able to Convert unsigned integers from decimal to binary and back. Take two's complement of a binary integer. Convert signed integers from decimal to binary and back. Convert integers from binary to hexadecimal and back. Add two binary integers. CPSC 121 – 2013W T1 4

  5. Module 3: Representing Values CPSC 121: the BIG questions: ? ? ? We will make progress on two of them: ? ? How does the computer (e.g. Dr. Racket) decide if the characters of your program represent a name, a number, ? ? or something else? How does it figure out if you have ? mismatched " " or ( )? ? ? How can we build a computer that is able to execute a user-defined program? ? ? ? ? ? ? ? CPSC 121 – 2013W T1 6

  6. Module 3: Representing Values By the end of this module, you should be able to: Critique the choice of a digital representation scheme, including describing its strengths, weaknesses, and flaws (such as imprecise representation or overflow), for a given type of data and purpose, such as fixed-width binary numbers using a two’s complement scheme for signed integer arithmetic in computers hexadecimal for human inspection of raw binary data. CPSC 121 – 2013W T1 7

  7. Module 3: Representing Values Summary Unsigned and signed binary integers. Characters. Real numbers. CPSC 121 – 2013W T1 8

  8. Module 3: Representing Values Notice the similarities: Number b 3 b 2 b 1 b 0 Number Value 1 Value 2 Value 3 Value 4 0 F F F F 0 0 0 0 0 1 F F F T 1 0 0 0 1 2 F F T F 2 0 0 1 0 3 F F T T 3 0 0 1 1 4 F T F F 4 0 1 0 0 5 F T F T 5 0 1 0 1 6 F T T F 6 0 1 1 0 7 F T T T 7 0 1 1 1 8 T F F F 8 1 0 0 0 9 T F F T 9 1 0 0 1 CPSC 121 – 2013W T1 9

  9. Module 3: Representing Values Unsigned integers review: the binary value b n − 1 b n − 2 ... b 2 b 1 b 0 represents the integer n − 1 + b n − 2 2 n − 2 + ... + b 2 2 2 + b 1 2 1 + b 0 b n − 1 2 or written differently n − 1 b i 2 ∑ i = 0 i CPSC 121 – 2013W T1 10

  10. Module 3: Representing Values To negate a (signed) integer: Replace every 0 bit by a 1, and every 1 bit by a 0. Add 1 to the result. Why does this make sense? For 3-bit integers, what is 111 + 1? a) 110 b) 111 c) 1000 d) 000 e) Error: we can not add these two values. CPSC 121 – 2013W T1 11

  11. Module 3: Representing Values Implications for binary representation: There is a noticeable pattern if you start at 0 and repeatedly add 1. We can extend the pattern towards the negative integers as well. Also note that -x has the same binary representation as n − x 2 n − x =( 2 n − 1 − x )+ 1 2 Add 1 Flip bits from 0 to 1 and from 1 to 0 CPSC 121 – 2013W T1 12

  12. Module 3: Representing Values First open-ended question from quiz #3: Imagine the time is currently 15:00 (3:00PM, that is). How can you quickly answer the following two questions without using a calculator: What time was it 8 * 21 hours ago? What time will it be 13 * 23 hours from now? CPSC 121 – 2013W T1 13

  13. Module 3: Representing Values Exercice: What is 10110110 in decimal, assuming it's a signed 8-bit binary integer? How do we convert a positive decimal integer n to binary? The last bit is 0 if n is even, and 1 if n is odd. To find the remaining bits, we divide n by 2, ignore the remainder, and repeat. What do we do if n is negative? CPSC 121 – 2013W T1 14

  14. Module 3: Representing Values Theorem : for signed integers: the binary value b n − 1 b n − 2 ... b 2 b 1 b 0 represents the integer n − 1 + b n − 2 2 n − 2 + ... + b 2 2 2 + b 1 2 1 + b 0 − b n − 1 2 or written differently n − 2 b i 2 n − 1 + ∑ i = 0 i − b n − 1 2 Proof : CPSC 121 – 2013W T1 15

  15. Module 3: Representing Values Questions to ponder: With n bits, how many distinct values can we represent? What are the smallest and largest n-bit unsigned binary integers? What are the smallest and largest n-bit signed binary integers? CPSC 121 – 2013W T1 16

  16. Module 3: Representing Values More questions to ponder: Why are there more negative n-bit signed integers than positive ones? How do we tell quickly if a signed binary integer is negative, positive, or zero? There is one signed n-bit binary integer that we should not try to negate. Which one? What do we get if we try negating it? CPSC 121 – 2013W T1 17

  17. Module 3: Representing Values Summary Unsigned and signed binary integers. Characters. Real numbers. CPSC 121 – 2013W T1 18

  18. Module 3: Representing Values How do computers represent characters? It uses sequences of bits (like for everything else). Integers have a “natural” representation of this kind. There is no natural representation for characters. So people created arbitrary mappings: EBCDIC: earliest, now used only for IBM mainframes. ASCII: American Standard Code for Information Interchange 7-bit per character, sufficient for upper/lowercase, digits, punctuation and a few special characters. UNICODE: 16+ bits, extended ASCII for languages other than English CPSC 121 – 2013W T1 19

  19. Module 3: Representing Values What does the 8-bit binary value 11111000 represent? a) -8 b) The character ø c) 248 d) More than one of the above e) None of the above. CPSC 121 – 2013W T1 20

  20. Module 3: Representing Values Summary Unsigned and signed binary integers. Characters. Real numbers. CPSC 121 – 2013W T1 21

  21. Module 3: Representing Values Can someone be 1/3 rd Belgian? Here is a very detailed answer from 2010W: "One needs to make many (wrong) assumptions in order to even approach this problem. First we must identify what “Scottish” means. Are we dealing with nationality, ethnic identity, some sort of odd idea about genetics (Scottish “blood”), or some jumbled folk sense of “Scottish” that jumbles the above three ideas; ... However, this is a crazy assumption because how can we say a chromosome is 100% or some other percentage some ethnic identity. ... I suggest changing this question in the future as it might be offensive to some minorities.” CPSC 121 – 2013W T1 22

  22. Module 3: Representing Values Here is an interesting answer from 2011W: Not normally, since every person's genetic code is derived from two parents, branching out in halves going back. However, someone with a chromosome abnormality that gives them three chromosomes (trisomy), a person might be said to be one-third/two-thirds of a particular genetic marker. CPSC 121 – 2013W T1 23

  23. Module 3: Representing Values Can someone be 1/3 rd Belgian? a) Suppose we start with people who are either 0% or 100% Belgian. (c) ITV/Rex Features b) After 1 generation, how Belgian can a child be? c) After 2 generations, how Belgian can a grand-child be? d) What about 3 generations? e) What about n generations? (c) 1979, Dargaud ed. et Albert Uderzo CPSC 121 – 2013W T1 24

  24. Module 3: Representing Values Numbers with fractional components in binary: Example: 5/32 = 0.00101 Which of the following values have a finite binary expansion? a) 1/10 b) 1/3 c) 1/4 d) More than one of the above. e) None of the above. CPSC 121 – 2013W T1 25

  25. Module 3: Representing Values Numbers with fractional components (cont): In decimal: 1/3 = 0.333333333333333333333333333333333333... 1/8 = 0.125 1/10 = 0.1 In binary: 1/3 = 1/8 = 1/10 = Which fractions have a finite binary expansion? CPSC 121 – 2013W T1 26

  26. Module 3: Representing Values How does Java represent values of the form xxx.yyyy? It uses scientific notation 1724 = 0.1724 x 10 4 But in binary, instead of decimal. 1724 = 0.11010111100 x 2 1011 exponent mantissa Only the mantissa and exponent need to be stored. The mantissa has a fixed number of bits (24 for float, 53 for double). CPSC 121 – 2013W T1 27

  27. Module 3: Representing Values Scheme/Racket uses this for inexact numbers. Consequences: Computations involving floating point numbers are imprecise. The computer does not store 1/3, but a number that's very close to 1/3. The more computations we perform, the further away from the “real” value we are. Example: predict the output of: (* #i0.01 0.01 0.01 100 100 100) CPSC 121 – 2013W T1 28

  28. Module 3: Representing Values Consider the following: (define (addfractions x) (if (= x 1.0) 0 (+ 1 (addfractions (+ x #i0.1))))) What output will (addfractions 0) return? a) 10 d) No value will be printed b) 11 e) None of the above c) More than 11 CPSC 121 – 2013W T1 29

Recommend


More recommend