Chapter 2 Representing and Manipulating Informationqitian/CS3843/Fall2013/Lecture/Chapter2.pdf · Chapter 2 Representing and Manipulating Information Prof. Qi Tian CS 3843 Fall 2013
Post on 06-Sep-2018
219 Views
Preview:
Transcript
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 Binary Result Hexadecimal result
~0x41 ~[0100 0001] [1011 1110] 0x BE
~0x00
0x69 & 0x55
0x69 | 0x55
8
Practice Problem 1 - Bit-level Operations in C
C expression Binary Representation Binary Result Hexadecimal result
~0x41 ~[0100 0001] [1011 1110] 0x BE
~0x00 ~[0000 0000] [1111 1111] 0x FF
0x69 & 0x55 [0110 1001]&[0101 0101] [0100 0001] 0x 41
0x69 | 0x55 [0110 1001]|[0101 0101] [0111 1101] 0x 7D
9
Practice Problem 2 - Boolean Operations (bit-level and logical operation in C)
Expression Value Expression Value
x & y x && y
x| y x || y
~x | ~y !x ||!y
x & !y x && ~y
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:
10
Practice Problem 2 - Boolean Operations (bit-level and logical operation in C)
Expression Value Expression Value
x & y 0x20 x && y 0x 1
x| y 0x7F x || y 0x 1
~x | ~y 0x DF !x ||!y 0x 0
x & !y 0x 0 x && ~y 0x 1
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:
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
= 1110, 0100
b) Using 2’s Complement System
N* = 1110, 0101
13
N
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
= 1111,1110, 0100 (sign extension from 8 bit)
b) Using 2’s Complement System
N* = 1111, 1110, 0101 (sign extension from 8 bit)
15
N
Section 2.2.1 Integer Representation
17
C data type Bytes Minimum Maximum char 1 -128 127
unsigned char 1 0 255
short (int) 2 -32,768 32,767
unsigned short (int) 2 0 65,535
int 4 -2,147,483,648 2,147,483,647
unsigned (int) 4 0 4,294,967,295
long (int) 4 -2,147,483,648 2,147,483,647
unsigned long (int) 4 0 4,294,967,295
long long (int) 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
Unsigned long long (int) 8 0 18,446,744,073,709,551,615
Typical range for C integral data type on 32-bit machine
Section 2.2 Integer Representation
18
Typical range for C integral data type on 64-bit machine
C data type Bytes Minimum Maximum char 1 -128 127
unsigned char 1 0 255
short (int) 2 -32,768 32,767
unsigned short (int) 2 0 65,535
int 4 -2,147,483,648 2,147,483,647
unsigned (int) 4 0 4,294,967,295
long (int) 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
unsigned long (int) 8 0 18,446,744,073,709,551,615
long long (int) 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
Unsigned long long (int) 8 0 18,446,744,073,709,551,615
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 =[xn-1,xn-2,…, x1, x0]
• Left shift: x << k (C expression) – Result: [xn-k-1, xn-k-2, …, x0, 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,xn-1, xn-2, …, xk]
– Arithmetic shift: x >>Ak • Result: [xn-1,…, xn-1, xn-1, …, xk]
21
Section 2.1.10 Shift Operations
• x << k is equivalent to multiply by 2k, x*2k
• x >>A k is equivalent to divide by 2k , x/2k
• 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 2k.
• Using addition if a small number of 1 bits
x * 49 = x * [110001]= x*[32 + 16 + 1] = x * [25+24+20]
= (x*25)+(x*24)+(x*20)= (x<<5) + (x<<4) +x
• Using subtraction if a large number of 1 bits in a row
x * 78 = x*[1001110] = x*[26+24-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.
24
K Shifts Add/Subs Expression
6 2 1
31 1 1
-6 2 1
55 2 2
Section 2.2.2 Unsigned Encodings
• There is only one standard way of encoding unsigned integers.
• Bit vector x = [xw-1, xw-2, …, x1, x0] with w bits
• Binary to unsigned number:
B2Uw(x)=2w-1xw-1+2w-2 xw-2++21 x1+20 x0
• Each integer between 0 and 2w-1 has a unique representation with w bits.
25
Section 2.2.2 Unsigned Encodings
• Examples:
B2U4([0011])=0x23+0x22+1x21+1x20=3
B2U4([1011])=1x23+0x22+1x21+1x20=11
26
Section 2.3.1 Unsigned Addition
• w bits, maximum value is 2w-1.
• It might take w+1 bits to represent the value of x+y.
• Addition is done modulo 2w.
• 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>28 therefore =(139+147)-28=30
29
Unsigned Addition and Substraction
30
Unsigned Addition
Unsigned Substraction
Section 2.4 IEEE Floating Point
31
Number of bits
Precision s exp frac total
single 1 8 23 32
double 1 11 52 64
extended 1 15 64 80
Example: A 6-bit format
• What is the bias: 22 -1 = 3. • How many different values can be represented with 6 bits:
26 = 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
s exp (3 bits) frac (2 bits)
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 * 2exp – 3
• Smallest positive normalized number: 0.25
33
A 6-bit format (continued)
• Denormalized values: M = frac * 2-2 = frac/4: 0, .25, .5, .75 value = M 2-2 = M/4. The values are 0, .0625, 0.125, and 0.1875 Denormalized spacing: 0.0625
• Largest denormalized number: 0.1875
34
A 6-bit format (continued)
• Denormalized values: M = frac * 2-2 = frac/4: 0, .25, .5, .75 value = M × 2-2 = M/4. The values are 0, .0625, 0.125, and 0.1875 Denormalized spacing: 0.0625
• Largest denormalized number: 0.1875
35
A 6-bit format (continued)
36
• The denormalized values are equally spaced: spacing is 0.0625. • The normailzed values are not equally spaced.
Example: Rounding
37
Mode 1.4 1.6 1.5 2.5 -1.5
Round-to-even
Round-towards-zero
Round-down
Round-up
Example: Rounding
38
Mode 1.4 1.6 1.5 2.5 -1.5
Round-to-even 1 2 2 2 -2
Round-towards-zero 1 1 1 2 -1
Round-down 1 1 1 2 -2
Round-up 2 2 2 3 -1
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
top related