Transcript PPT

Chapter 2 Representing and Manipulating Information

Prof. Qi Tian CS 3843 Fall 2013 http://www.cs.utsa.edu/~qitian/CS3843/ 1

Summary of Lectures

• 09-30-2013 (Monday) – Section 2.4.4 Rounding Example – In-class Quiz 2 – Reminder: Midterm 1 on Monday Oct. 7, 2013 – Practice Problems for Midterm One 2

Summary of Lectures

• • • 09-27-2013 (Friday) – IEEE Rounding Methods – Practice Problem – Quiz 2 next Monday –

Midterm 1 on Monday Oct. 7, 2013

09-25-2013 (Wednesday) – Examples for IEEE Floating Point Representation 09-23-2013 (Monday) – Section 2.4 IEEE Floating Point Representation (cont.) 3

Summary of Lectures

• • • 09-20-2013 (Friday) – Section 2.4 IEEE Floating Point Representation (cont.) 09-18-2013 (Wednesday) – Section 2.4 IEEE Floating Point Representation 09-16-2013 (Monday) – Section 2.3.1 Unsigned Addition and Unsigned Subtraction – Section 2.3.2 Two’s Complement Addition – Quiz 1 4

Summary of Lectures

• • • 09-13-2013 (Friday) – – Questions on P.9 of Assignment 1 Section 2.3.1 Unsigned Addition – Quiz 1 09-11-2013 (Wednesday) – Section 2.1.10 Shift Operations • Practice Problem 4 – Questions on Assignment 1 09-09-2013 (Monday) – Practice Problems 1-3 5

Summary of Lectures

• • 09-06-2013 (Friday) – Section 2.2.3 Representing Negative Numbers • Sign & Magnitude System • Two’s Complement System • One’s Complement System 09-04-2013 (Wednesday) – Section 2.1.2-2.1.10

• Word size/data size/addressing and byte ordering • Boolean Algebra and Logical Operations in C 6

Summary of Lectures

• • 08-30-2013 (Friday) – Conversion between decimal and base R number • Integer • Fractional number 08-28-2013 (Wednesday) – Syllabus – Information Storage – Conversion between Binary and Hexadecimal Number 7

Practice Problem 1 - Bit-level Operations in C C expression Binary Representation ~0x41 ~0x00 ~[0100 0001] 0x69 & 0x55 0x69 | 0x55 Binary Result [1011 1110] Hexadecimal result 0x BE 8

Practice Problem 1 - Bit-level Operations in C C expression ~0x41 ~0x00 Binary Representation ~[0100 0001] ~[0000 0000] Binary Result [1011 1110] [1111 1111] 0x69 & 0x55 [0110 1001]&[0101 0101] [0100 0001] 0x69 | 0x55 [0110 1001]|[0101 0101] [0111 1101] Hexadecimal result 0x BE 0x FF 0x 41 0x 7D 9

Practice Problem 2 Boolean Operations (bit-level and logical operation in C) Suppose x and y have byte values 0x66 and 0x39, respectively. Fill in the following table indicating the byte value of the different C expressions: Expression Value Expression Value x & y x| y ~x | ~y x & !y

x && y x || y !x ||!y

x && ~y 10

Practice Problem 2 Boolean Operations (bit-level and logical operation in C) Suppose x and y have byte values 0x66 and 0x39, respectively. Fill in the following table indicating the byte value of the different C expressions: Expression Value Expression Value x & y x| y ~x | ~y x & !y

0x20 0x7F 0x DF 0x 0 x && y x || y !x ||!y

x && ~y 0x 1 0x 1 0x 0 0x 1 11

Practice Problem 3 Representing Negative Numbers Q1. Using a 8-bit word, find the binary representation of -27.

a) Using Sign and Magnitude System b) Using 1’s Complement System c) Using 2’s Complement System 12

Practice Problem 3 Representing Negative Numbers Q1. Using a 8-bit word, find the binary representation of -27.

a) Using Sign and Magnitude System N = 27 = 0001, 1011 -27 = 1001,1011 b) Using 1’s Complement System N = 27 = 0001, 1011

N

= 1110, 0100 b) Using 2’s Complement System N* = 1110, 0101 13

Practice Problem 3 Representing Negative Numbers

Q2. Using a 12-bit word, find the binary representation of -27.

a) Using Sign and Magnitude System b) Using 1’s Complement System c) Using 2’s Complement System 14

Practice Problem 3 Representing Negative Numbers Q2. Using a 12-bit word, find the binary representation of -27.

a) Using Sign and Magnitude System N = 27 = 0000, 0001, 1011 -27 = 1000, 0001,1011 (not sign extension from 8 bit) b) Using 1’s Complement System N = 27 = 0000, 0001, 1011

N

= 1111,1110, 0100 (sign extension from 8 bit) b) Using 2’s Complement System N* = 1111, 1110, 0101 (sign extension from 8 bit) 15

Section 2.2.1 Integer Representation

C data type

char unsigned char short (int) unsigned short (int) int unsigned (int) long (int) unsigned long (int) long long (int) Unsigned long long (int)

Bytes

1 1 2 2 8 8 4 4 4 4

Minimum

-128 0 -32,768 0 -2,147,483,648 0 -2,147,483,648 0 -9,223,372,036,854,775,808 0

Maximum

127 255 32,767 65,535 2,147,483,647 4,294,967,295 2,147,483,647 4,294,967,295 9,223,372,036,854,775,807 18,446,744,073,709,551,615 Typical range for C integral data type on 32-bit machine 17

Section 2.2 Integer Representation

C data type

char unsigned char short (int) unsigned short (int) int unsigned (int) long (int) unsigned long (int) long long (int) Unsigned long long (int)

Bytes

1 1 2 2 4 4 8 8 8 8

Minimum

-128 0 -32,768 0 -2,147,483,648 0 -9,223,372,036,854,775,808 0 -9,223,372,036,854,775,808 0

Maximum

127 255 32,767 65,535 2,147,483,647 4,294,967,295 9,223,372,036,854,775,807 18,446,744,073,709,551,615 9,223,372,036,854,775,807 18,446,744,073,709,551,615 Typical range for C integral data type on 64-bit machine 18

Section 2.1.5 ASCII Code

• • • A character is usually represented as a single byte by using the ASCII code.

Strings are represented as arrays of characters terminated by the null character. ASCII – American Standard Code for Information Interchange – – 7-bit code (128 ASCII Characters) Some properties: • Codes for digits are consecutive: ‘0’ = 48, ‘1’ =49, etc.

• • • Codes for upper case letters are consecutive: ‘A’=65, ‘B’=66, etc.

Codes for lower case letters are consecutive: ‘a’=97, ‘b’=98, etc.

Maximum value is 127.

19

ASCII Code

• A compact table in hex and decimal 20

Section 2.1.10 Shift Operations

• • • X =[x n-1 ,x n-2 ,…, x 1 , x 0 ] Left shift: x << k (C expression) – Result: [x n-k-1 , x n-k-2 , …, x 0 , 0,…, 0 ] – Dropping off the k most significant bits, and filled the right end with k zeros Right shift: x >> k (C expression) – – Logical shift: x >> L • k Result: [ 0,…,0 ,x n-1 , x n-2 , …, x k ] Arithmetic shift: x >> A k • Result: [ x n-1 ,…, x n-1 , x n-1 , …, xk] 21

Section 2.1.10 Shift Operations

• • • • x << k is equivalent to multiply by 2 k , x*2 k x >> A k is equivalent to divide by 2 k , x/2 k k < 32 for integer x Many C compilers perform arithmetic right shifts on negative values in which the vacated values are filled with the sign bit.

22

Section 2.3.6 – Multiplying by constants

• • • A left shift by k bits is equivalent to multiplying by 2 k .

Using addition if a small number of 1 bits x * 49 = x * [110001]= x*[32 + 16 + 1] = x * [2 5 +2 4 +2 0 ] = (x*2 5 )+(x*2 4 )+(x*2 0 )= (x<<5) + (x<<4) +x Using subtraction if a large number of 1 bits in a row x * 78 = x*[1001110] = x*[2 6 +2 4 -2] = (x<<6)+(x<<4)-(x<<1) 23

Practice Problem 4

• For each of the following values of K, find ways to express x *K using only the specified number of operations, where we consider both addition and subtractions to have comparable cost. K 6 31 -6 55 Shifts 2 1 2 2 Add/Subs 1 1 1 2 Expression 24

Section 2.2.2 Unsigned Encodings

• • • • There is only one standard way of encoding unsigned integers.

Bit vector x = [x w-1 , x w-2 , …, x 1 , x 0 ] with w bits Binary to unsigned number: B2U w (x)=2 w-1  x w-1 +2 w-2  x w-2 +  +2 1  x 1 +2 0  x 0 Each integer between 0 and 2 w-1 representation with w bits.

has a unique 25

Section 2.2.2 Unsigned Encodings

• Examples: B2U 4 ([0011])=0x2 3 +0x2 2 +1x2 1 +1x2 0 =3 B2U 4 ([1011])=1x2 3 +0x2 2 +1x2 1 +1x2 0 =11 26

Section 2.3.1 Unsigned Addition

• • • • • • w bits, maximum value is 2 w -1.

It might take w+1 bits to represent the value of x+y.

Addition is done modulo 2 w .

When x+y does not produce the correct result, we say that overflow has occurred.

In C, overflow is not detected.

How can you test whether adding x and y will produce an overflow?

27

Section 2.3.1 Unsigned Addition

• What is 28

Section 2.3.1 Unsigned Addition

• What is Sol: 139+147>2 8 therefore =(139+147)-2 8 =30 29

Unsigned Addition and Substraction

Unsigned Addition Unsigned Substraction 30

Section 2.4 IEEE Floating Point

Precision single double extended s 1 1 1 Number of bits exp frac 8 11 15 23 52 64 total 32 64 80 31

Example: A 6-bit format

s exp (3 bits) frac (2 bits) • • • • • • • • • What is the bias: 2 2 -1 = 3. How many different values can be represented with 6 bits: 2 6 = 64. How many of these are NaN: 6 How many of these are infinity: 2 How many of these are positive, normalized: 6×4 = 24 How many of these are negative, normalized: 6×4 = 24 How many of values are zero (denormalized): 2 How many of these are denormalized > 0: 3 How many of these are denormalized < 0: 3 32

A 6-bit format (continued)

• • What are the positive normalized values?

s = 0; exp = 1, 2, 3, 4, 5, or 6 frac = 00, 01, 10, or 11, corresponding to 1.00, 1.01, 1.10, and 1.11

V = 1.frac * 2 exp – 3 Smallest positive normalized number: 0.25

33

A 6-bit format (continued)

• • Denormalized values: M = frac * 2 -2 Denormalized spacing: 0.0625 = frac/4: 0, .25, .5, .75

value = M 2 -2 = M/4.

The values are 0, .0625, 0.125, and 0.1875

Largest denormalized number: 0.1875 34

A 6-bit format (continued)

• • Denormalized values: M = frac * 2 -2 Denormalized spacing: 0.0625 = frac/4: 0, .25, .5, .75

value = M × 2 -2 = M/4.

The values are 0, .0625, 0.125, and 0.1875

Largest denormalized number: 0.1875 35

A 6-bit format (continued)

• • The denormalized values are equally spaced: spacing is 0.0625.

The normailzed values are not equally spaced.

36

Example: Rounding

Mode Round-to-even Round-towards-zero Round-down Round-up 1.4

1.6

1.5

2.5

-1.5

37

Example: Rounding

Mode Round-to-even Round-towards-zero Round-down Round-up 1.4

1 1 1 2 1.6

2 1 1 2 1.5

2 1 1 2 2.5

2 2 2 3 -1.5

-2 -1 -2 -1 38

Rounding Example

• • • American Patriot Missile Battery in the first Gulf-War, Feb. 25, 1991, failed to intercept an incoming Iraqi Scud missile.

Disaster Result: 28 soldiers killed Failure Analysis by the US General Accounting Office (GAO): – The underlying cause was an impression in a numeric calculation.

39