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