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

cpsc 121 models of computation
SMART_READER_LITE
LIVE PREVIEW

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: Coming up... Pre-class quiz #4 is due Thursday January 21 st at 19:00. Assigned reading for the quiz: Epp, 4 th edition: 2.3 Epp, 3 rd edition: 1.3 Rosen, 6 th


slide-1
SLIDE 1

CPSC 121: Models of Computation

Module 3: Representing Values in a Computer

slide-2
SLIDE 2

CPSC 121 – 2015W T2 2

Module 3: Coming up...

Pre-class quiz #4 is due Thursday January 21st at 19:00.

Assigned reading for the quiz:

Epp, 4th edition: 2.3 Epp, 3rd edition: 1.3 Rosen, 6th edition: 1.5 up to the bottom of page 69. Rosen, 7th edition: 1.6 up to the bottom of page 75.

Assignment #1 is (still) due Thursday January 21st at 17:00, in box #21 in ICCS X235.

slide-3
SLIDE 3

CPSC 121 – 2015W T2 3

Module 3: Coming up...

Pre-class quiz #5 is tentatively due Tuesday, January 26th at 19:00.

Assigned reading for the quiz:

Epp, 4th edition: 3.1, 3.3 Epp, 3rd edition: 2.1, 2.3 Rosen, 6th edition: 1.3, 1.4 Rosen, 7th edition: 1.4, 1.5

slide-4
SLIDE 4

CPSC 121 – 2015W T2 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.

slide-5
SLIDE 5

CPSC 121 – 2015W T2 5

Module 3: Representing Values

Quiz 3 feedback:

Well done overall. Only one question had an average of “only” 85%:

What is the decimal value of the signed 6-bit binary number 101110?

Answer:

slide-6
SLIDE 6

CPSC 121 – 2015W T2 6

Module 3: Representing Values

Quiz 3 feedback:

Can one be 1/3rd Scottish? We will get back to this question later. I don't have any Scottish ancestors. So we will ask if one can be 1/3 Belgian instead (which would you prefer: a bagpipe and a kilt, or belgian chocolate?)

(c) 1979, Dargaud ed. et Albert Uderzo (c) ITV/Rex Features

slide-7
SLIDE 7

CPSC 121 – 2015W T2 7

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,

  • r 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?

slide-8
SLIDE 8

CPSC 121 – 2015W T2 8

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.

slide-9
SLIDE 9

CPSC 121 – 2015W T2 9

Module 3: Representing Values

Summary

Unsigned and signed binary integers. Characters. Real numbers. Hexadecimal.

slide-10
SLIDE 10

CPSC 121 – 2015W T2 10

Module 3.1: Unsigned and signed binary integers

Notice the similarities:

Number Value 1 Value 2 Value 3 Value 4 F F F F 1 F F F T 2 F F T F 3 F F T T 4 F T F F 5 F T F T 6 F T T F 7 F T T T 8 T F F F 9 T F F T Number b3 b2 b1 b0 1 1 2 1 3 1 1 4 1 5 1 1 6 1 1 7 1 1 1 8 1 9 1 1

slide-11
SLIDE 11

CPSC 121 – 2015W T2 11

Module 3.1: Unsigned and signed binary integers

Unsigned integers review: the binary value represents the integer

  • r written differently

∑i=0

n−1 bi2 i

bn−12

n−1+bn−22 n−2+...+b22 2+b12 1+b0

bn−1bn−2...b2b1b0

slide-12
SLIDE 12

CPSC 121 – 2015W T2 12

Module 3.1: Unsigned and signed binary integers

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.

slide-13
SLIDE 13

CPSC 121 – 2015W T2 13

Module 3.1: Unsigned and signed binary integers

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

2

n−x

2

n−x=(2 n−1−x)+1

Flip bits from 0 to 1 and from 1 to 0 Add 1

slide-14
SLIDE 14

CPSC 121 – 2015W T2 14

Module 3.1: Unsigned and signed binary integers

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?

slide-15
SLIDE 15

CPSC 121 – 2015W T2 15

Module 3.1: Unsigned and signed binary integers

From pre-class quiz #3:

What is the 6-bit signed binary representation of the decimal number -29? What is the decimal value of the signed 6-bit binary number 101110?

Exercice:

What is 10110110 in decimal, assuming it's a signed 8-bit binary integer?

slide-16
SLIDE 16

CPSC 121 – 2015W T2 16

Module 3.1: Unsigned and signed binary integers

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?

slide-17
SLIDE 17

CPSC 121 – 2015W T2 17

Module 3.1: Unsigned and signed binary integers

Theorem: for signed integers: the binary value represents the integer

  • r written differently

Proof:

−bn−12

n−1+∑i=0 n−2 bi2 i

−bn−12

n−1+bn− 22 n−2+...+b22 2+b12 1+b0

bn−1bn−2...b2b1b0

slide-18
SLIDE 18

CPSC 121 – 2015W T2 18

Module 3.1: Unsigned and signed binary integers

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?

slide-19
SLIDE 19

CPSC 121 – 2015W T2 19

Module 3.1: Unsigned and signed binary integers

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?

slide-20
SLIDE 20

CPSC 121 – 2015W T2 20

Module 3: Representing Values

Summary

Unsigned and signed binary integers. Characters. Real numbers. Hexadecimal.

slide-21
SLIDE 21

CPSC 121 – 2015W T2 21

Module 3.2: Characters

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

slide-22
SLIDE 22

CPSC 121 – 2015W T2 22

Module 3.2: Characters

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. ø

slide-23
SLIDE 23

CPSC 121 – 2015W T2 23

Module 3: Representing Values

Summary

Unsigned and signed binary integers. Characters. Real numbers. Hexadecimal.

slide-24
SLIDE 24

CPSC 121 – 2015W T2 24

Module 3.3: Real numbers

Can someone be 1/3rd Belgian? 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.

slide-25
SLIDE 25

CPSC 121 – 2015W T2 25

Module 3.3: Real numbers

Here is a mathematical answer from 2013W:

While debated, scotland is traditionally said to be founded in 843AD, aproximately 45 generations

  • ago. Your mix of scottish, will therefore be n/245;

using 245/3 (rounded to the nearest integer) as the numerator gives us 11728124029611/245 which give us approximately 0.333333333333342807236476801 which is no more than 1/1013 th away from 1/3.

slide-26
SLIDE 26

CPSC 121 – 2015W T2 26

Module 3.3: Real numbers

Another mathematical answer from 2013W:

If we assume that two Scots have a child, and that child has a child with a non-Scot, and this continues in the right proportions, then eventually their Scottishness will approach 1/3: This is of course discounting the crazy citizenship laws we have these days, and the effect of wearing a kilt on

  • ne's heritage.

lim generations →∞ scottish=1 3

slide-27
SLIDE 27

CPSC 121 – 2015W T2 27

Module 3.3: Real numbers

An interesting answer from last term:

In a mathematical sense, you can create 1/3 using infinite sums of inverse powers of 2

1/2 isn't very close 1/4 isn't either 3/8 is getting there... 5/16 is yet closer, so is 11/32, 21/64, 43/128 etc 85/256 is 0.33203125, which is much closer, but which also implies eight generations of very careful romance amongst your elders. 5461/16384 is 0.33331298828125, which is still getting there, but this needs fourteen generations and a heck of a lot of Scots and non-Scots.

slide-28
SLIDE 28

CPSC 121 – 2015W T2 28

Module 3.3: Real numbers

Interesting answers from this term:

Maybe if you're some kind of insect or microbial life- form with unorthodox mating rituals / gender

  • distribution. But for a human, it is impossible to be

1/3 or 1/6 of anything. ... Because there is crossing over, independent assortment of the chromosones and fertilization we cannot exactly know how many genes we are taking from our father and how many genes we are taking from our mother. Our genes are the random mixture of our parents' genes, so we cannot answer this question in a biological way.

slide-29
SLIDE 29

CPSC 121 – 2015W T2 29

Module 3.3: Real numbers

Interesting answers from this term:

No, but what if I once wore a kilt? After an infinite number of generations of such careful breeding, a child will be produced who’s Scottishness approaches 1/3. ... In conclusion, unless you had an ancestor who was already 1/3 or some other weird fraction Scottish, you cannot be 1/3 Scottish.

slide-30
SLIDE 30

CPSC 121 – 2015W T2 30

Module 3.3: Real numbers

Can someone be 1/3rd Belgian?

a) Suppose we start with people who are either 0% or 100% Belgian. 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) ITV/Rex Features (c) 1979, Dargaud ed. et Albert Uderzo

slide-31
SLIDE 31

CPSC 121 – 2015W T2 31

Module 3.3: Real numbers

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.

slide-32
SLIDE 32

CPSC 121 – 2015W T2 32

Module 3.3: Real numbers

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?

slide-33
SLIDE 33

CPSC 121 – 2015W T2 33

Module 3.3: Real numbers

How does Java represent values of the form xxx.yyyy?

It uses scientific notation

1724 = 0.1724 x 104

But in binary, instead of decimal.

1724 = 1.1010111100 x 21010

Only the mantissa and exponent need to be stored. The mantissa has a fixed number of bits (24 for float, 53 for double).

mantissa exponent

slide-34
SLIDE 34

CPSC 121 – 2015W T2 34

Module 3.3: Real numbers

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)

slide-35
SLIDE 35

CPSC 121 – 2015W T2 35

Module 3.3: Real numbers

Consider the following: What value will (addfractions 0) return?

a) 10 d) No value will be printed b) 11 e) None of the above c) More than 11

(define (addfractions x) (if (= x 1.0) (+ 1 (addfractions (+ x #i0.1)))))

slide-36
SLIDE 36

CPSC 121 – 2015W T2 36

Module 3: Representing Values

Summary

Unsigned and signed binary integers. Characters. Real numbers. Hexadecimal.

slide-37
SLIDE 37

CPSC 121 – 2015W T2 37

Module 3.4: Hexadecimal

As you learned in CPSC 110, a program can be

Interpreted: another program is reading your code and performing the operations indicated.

Example: Scheme/Racket

Compiled: the program is translated into machine

  • language. Then the machine language version is

executed directly by the computer.

slide-38
SLIDE 38

CPSC 121 – 2015W T2 38

Module 3.4: Hexadecimal

What does a machine language instruction look like?

It is a sequence of bits! Y86 example: adding two values.

In human-readable form: addl %ebx, %ecx. In binary: 0110000000110001

Arithmetic operation Addition %ebx %ecx

slide-39
SLIDE 39

CPSC 121 – 2015W T2 39

Module 3.4: Hexadecimal

Long sequences of bits are painful to read and write, and it's easy to make mistakes. Should we write this in decimal instead?

Decimal version: 24625. Problem:

Solution: use hexadecimal 6031

Arithmetic operation Addition %ebx %ecx

We can not tell what operation this is.

slide-40
SLIDE 40

CPSC 121 – 2015W T2 40

Module 3.4: Hexadecimal

Another example:

Suppose we make the text in a web page use color 15728778. What color is this?

Red leaning towards purple.

Written in hexadecimal: F00084

Red Green Blue