Computer Architecture and Organization. Chapter 2 Data Representation!

Similar documents
Rui Wang, Assistant professor Dept. of Information and Communication Tongji University.

IEEE Standard for Floating-Point Arithmetic: 754

Numeric Encodings Prof. James L. Frankel Harvard University

CMSC 313 Lecture 03 Multiple-byte data big-endian vs little-endian sign extension Multiplication and division Floating point formats Character Codes

Floating Point. The World is Not Just Integers. Programming languages support numbers with fraction

9/3/2015. Data Representation II. 2.4 Signed Integer Representation. 2.4 Signed Integer Representation

Divide: Paper & Pencil

Module 2: Computer Arithmetic

Floating Point Arithmetic

COMP2611: Computer Organization. Data Representation

MACHINE LEVEL REPRESENTATION OF DATA

Data Representation 1

Data Representation COE 301. Computer Organization Prof. Muhamed Mudawar

3.1 DATA REPRESENTATION (PART C)

Number Systems. Both numbers are positive

UNIT 7A Data Representation: Numbers and Text. Digital Data

ECE232: Hardware Organization and Design

Signed umbers. Sign/Magnitude otation

Chapter 2. Data Representation in Computer Systems

Floating-point Arithmetic. where you sum up the integer to the left of the decimal point and the fraction to the right.

IT 1204 Section 2.0. Data Representation and Arithmetic. 2009, University of Colombo School of Computing 1

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Number System. Introduction. Decimal Numbers

World Inside a Computer is Binary

Chapter Three. Arithmetic

COMP Overview of Tutorial #2

Number Systems. Binary Numbers. Appendix. Decimal notation represents numbers as powers of 10, for example

Integers. N = sum (b i * 2 i ) where b i = 0 or 1. This is called unsigned binary representation. i = 31. i = 0

Computer (Literacy) Skills. Number representations and memory. Lubomír Bulej KDSS MFF UK

Floating-Point Data Representation and Manipulation 198:231 Introduction to Computer Organization Lecture 3

Number Systems and Computer Arithmetic

Integers and Floating Point

COMP2121: Microprocessors and Interfacing. Number Systems

unused unused unused unused unused unused

Scientific Computing. Error Analysis

1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM

Introduction to Computers and Programming. Numeric Values

CMPSCI 145 MIDTERM #1 Solution Key. SPRING 2017 March 3, 2017 Professor William T. Verts

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

CHW 261: Logic Design

CS & IT Conversions. Magnitude 10,000 1,

Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as:

Floating-Point Arithmetic

IEEE-754 floating-point

Chapter 3: Arithmetic for Computers

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 02, FALL 2012

Lecture 2: Number Systems

Signed Binary Numbers

CS321. Introduction to Numerical Methods

Computer Architecture and Organization

Chapter 2. Positional number systems. 2.1 Signed number representations Signed magnitude

CS101 Lecture 04: Binary Arithmetic

Internal Data Representation

Floating Point Numbers. Lecture 9 CAP

Organisasi Sistem Komputer

Number Systems CHAPTER Positional Number Systems

Chapter 4: Data Representations

CS 101: Computer Programming and Utilization

Real Numbers finite subset real numbers floating point numbers Scientific Notation fixed point numbers

CO212 Lecture 10: Arithmetic & Logical Unit

Number Systems Prof. Indranil Sen Gupta Dept. of Computer Science & Engg. Indian Institute of Technology Kharagpur Number Representation

Chapter 1 Review of Number Systems

CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems

A complement number system is used to represent positive and negative integers. A complement number system is based on a fixed length representation

Chapter 2. Data Representation in Computer Systems

Characters, Strings, and Floats

Digital Logic. The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer.

Digital Fundamentals

ECE260: Fundamentals of Computer Engineering

CPS 104 Computer Organization and Programming Lecture-2 : Data representations,

Inf2C - Computer Systems Lecture 2 Data Representation

Announcement. (CSC-3501) Lecture 3 (22 Jan 2008) Today, 1 st homework will be uploaded at our class website. Seung-Jong Park (Jay)

Chapter 2 Bits, Data Types, and Operations

±M R ±E, S M CHARACTERISTIC MANTISSA 1 k j

CSCI 402: Computer Architectures. Arithmetic for Computers (3) Fengguang Song Department of Computer & Information Science IUPUI.

Objectives. Connecting with Computer Science 2

Number Systems and Binary Arithmetic. Quantitative Analysis II Professor Bob Orr

ECE331: Hardware Organization and Design

COMPUTER ARCHITECTURE AND ORGANIZATION. Operation Add Magnitudes Subtract Magnitudes (+A) + ( B) + (A B) (B A) + (A B)

CPE 323 REVIEW DATA TYPES AND NUMBER REPRESENTATIONS IN MODERN COMPUTERS

CPE 323 REVIEW DATA TYPES AND NUMBER REPRESENTATIONS IN MODERN COMPUTERS

Chapter 2 Data Representations

Floating-Point Arithmetic

Administrivia. CMSC 216 Introduction to Computer Systems Lecture 24 Data Representation and Libraries. Representing characters DATA REPRESENTATION

Data Representation in Computer Memory

Chapter 2 Bits, Data Types, and Operations

MYcsvtu Notes DATA REPRESENTATION. Data Types. Complements. Fixed Point Representations. Floating Point Representations. Other Binary Codes

Chapter 5 : Computer Arithmetic

Floating-Point Arithmetic

Floating Point (with contributions from Dr. Bin Ren, William & Mary Computer Science)

Data Representations & Arithmetic Operations

Homework 1 graded and returned in class today. Solutions posted online. Request regrades by next class period. Question 10 treated as extra credit

3 Data Storage 3.1. Foundations of Computer Science Cengage Learning

10.1. Unit 10. Signed Representation Systems Binary Arithmetic

Numerical computing. How computers store real numbers and the problems that result

Finite arithmetic and error analysis

Representation of Non Negative Integers

UNIT-III COMPUTER ARTHIMETIC

Basic data types. Building blocks of computation

Transcription:

2-1! Chapter 2 - Data Representation! Computer Architecture and Organization Miles Murdocca and Vincent Heuring! Chapter 2 Data Representation!

2-2! Chapter 2 - Data Representation! Chapter Contents! 2.1 Fixed Point Numbers! 2.2 Floating-Point Numbers! 2.3 Case Study: Patriot Missile Defense Failure Caused by Loss of Precision! 2.4 Character Codes!

2-3! Chapter 2 - Data Representation! Fixed Point Numbers! Using only two digits of precision for signed base 10 numbers, the range (interval between lowest and highest numbers) is [-99, +99] and the precision (distance between successive numbers) is 1.! The maximum error, which is the difference between the value of a real number and the closest representable number, is 1/2 the precision. For this case, the error is 1/2 1 = 0.5.! If we choose a = 70, b = 40, and c = -30, then a + (b + c) = 80 (which is correct) but (a + b) + c = -30 which is incorrect. The problem is that (a + b) is +110 for this example, which exceeds the range of +99, and so only the rightmost two digits (+10) are retained in the intermediate result. This is a problem that we need to keep in mind when representing real numbers in a finite representation.!

2-4! Chapter 2 - Data Representation! Weighted Position Code! The base, or radix of a number system defines the range of possible values that a digit may have: 0 9 for decimal; 0,1 for binary.! The general form for determining the decimal value of a number is given by:!!!! Example:! 541.25 10 = 5 10 2 + 4 10 1 + 1 10 0 + 2 10-1 + 5 10-2!!!= (500) 10 + (40) 10 + (1) 10 + (2/10) 10 + (5/100) 10!!!!= (541.25) 10!

2-5! Chapter 2 - Data Representation! Base Conversion with the Remainder Method! Example: Convert 23.375 10 to base 2. Start by converting the integer portion:!

2-6! Chapter 2 - Data Representation! Base Conversion with the Multiplication Method! Now, convert the fraction:! Putting it all together, 23.375 10 = 10111.011 2!

2-7! Chapter 2 - Data Representation! Nonterminating Base 2 Fraction! We can t always convert a terminating base 10 fraction into an equivalent terminating base 2 fraction:!

2-8! Chapter 2 - Data Representation! Base 2, 8, 10, 16 Number Systems! Example: Show a column for ternary (base 3). As an extension of that, convert 14 10 to base 3, using 3 as the divisor for the remainder method (instead of 2). Result is 112 3!

2-9! Chapter 2 - Data Representation! More on Base Conversions! Converting among power-of-2 bases is particularly simple:!!1011 2 = (10 2 )(11 2 ) = 23 4!!23 4 = (2 4 )(3 4 ) = (10 2 )(11 2 ) = 1011 2!!101010 2 = (101 2 )(010 2 ) = 52 8!!01101101 2 = (0110 2 )(1101 2 ) = 6D 16! How many bits should be used for each base 4, 8, etc., digit? For base 2, in which 2 = 2 1, the exponent is 1 and so one bit is used for each base 2 digit. For base 4, in which 4 = 2 2, the exponent is 2, so so two bits are used for each base 4 digit. Likewise, for base 8 and base 16, 8 = 2 3 and 16 = 2 4, and so 3 bits and 4 bits are used for base 8 and base 16 digits, respectively.!!

2-10! Chapter 2 - Data Representation! Binary Addition! This simple binary addition example provides background for the signed number representations to follow.!

2-11! Chapter 2 - Data Representation! Signed Fixed Point Numbers!!For an 8-bit number, there are 2 8 = 256 possible bit patterns. These bit patterns can represent negative numbers if we choose to assign bit patterns to numbers in this way. We can assign half of the bit patterns to negative numbers and half of the bit patterns to positive numbers.!!four signed representations we will cover are:! Signed Magnitude! One s Complement! Two s Complement! Excess (Biased)!

2-12! Chapter 2 - Data Representation! 3-Bit Signed Integer Representations!

2-13! Chapter 2 - Data Representation! Signed Magnitude!!Also know as sign and magnitude, the leftmost bit is the sign (0 = positive, 1 = negative) and the remaining bits are the magnitude.!!!example:! +25 10 = 00011001 2! -25 10 = 10011001 2!!!Two representations for zero: +0 = 00000000 2, -0 = 10000000 2.!!Largest number is +127, smallest number is -127 10, using an 8-bit representation.!

2-14! Chapter 2 - Data Representation! One s Complement!!The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by subtracting each bit from 2 (essentially, complementing each bit from 0 to 1 or from 1 to 0). This goes both ways: converting positive numbers to negative numbers, and converting negative numbers to positive numbers.!!!example:! +25 10 = 00011001 2! -25 10 = 11100110 2!!!Two representations for zero: +0 = 00000000 2, -0 = 11111111 2.!!Largest number is +127 10, smallest number is -127 10, using an 8-bit representation.!

2-15! Chapter 2 - Data Representation! Two s Complement!!The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by adding 1 to the one s complement negative. This goes both ways, converting between positive and negative numbers.!!!example (recall that -25 10 in one s complement is 11100110 2 ):! +25 10 = 00011001 2! -25 10 = 11100111 2!!!One representation for zero: +0 = 00000000 2, -0 = 00000000 2.!!Largest number is +127 10, smallest number is -128 10, using an 8-bit representation.!

2-16! Chapter 2 - Data Representation! Excess (Biased)!!The leftmost bit is the sign (usually 1 = positive, 0 = negative). Positive and negative representations of a number are obtained by adding a bias to the two s complement representation. This goes both ways, converting between positive and negative numbers. The effect is that numerically smaller numbers have smaller bit patterns, simplifying comparisons for floating point exponents.!!example (excess 128 adds 128 to the two s complement version, ignoring any carry out of the most significant bit) :! +12 10 = 10001100 2! -12 10 = 01110100 2!!One representation for zero: +0 = 10000000 2, -0 = 10000000 2.!!Largest number is +127 10, smallest number is -128 10, using an 8-bit representation.!

2-17! Chapter 2 - Data Representation! Base 10 Floating Point Numbers!!Floating point numbers allow very large and very small numbers to be represented using only a few digits, at the expense of precision. The precision is primarily determined by the number of digits in the fraction (or significand, which has integer and fractional parts), and the range is primarily determined by the number of digits in the exponent.!!example (+6.023 10 23 ):!

2-18! Chapter 2 - Data Representation! Normalization!!The base 10 number 254 can be represented in floating point form as 254 10 0, or equivalently as:!!25.4 10 1,!!or!2.54 10 2,!or!!.254 10 3,!!or!.0254 10 4,!or! infinitely many other ways, which creates problems when making comparisons, with so many representations of the same number.!!floating point numbers are usually normalized, in which the radix point is located in only one possible position for a given number.!!usually, but not always, the normalized representation places the radix point immediately to the left of the leftmost, nonzero digit in the fraction, as in:.254 10 3.!

2-19! Chapter 2 - Data Representation! Floating Point Example!!Represent.254 10 3 in a normalized base 8 floating point format with a sign bit, followed by a 3-bit excess 4 exponent, followed by four base 8 digits.!!step #1: Convert to the target base.!!.254 10 3 = 254 10. Using the remainder method, we find that 254 10 = 376 8 0 :!!!254/8 = 31 R 6!!!31/8 = 3 R 7!!!3/8 = 0 R 3!!Step #2: Normalize: 376 8 0 =.376 8 3.!!Step #3: Fill in the bit fields, with a positive sign (sign bit = 0), an exponent of 3 + 4 = 7 (excess 4), and 4-digit fraction =.3760:! 0 111. 011 111 110 000!

2-20! Chapter 2 - Data Representation! Error, Range, and Precision!!In the previous example, we have the base b = 8, the number of significant digits (not bits!) in the fraction s = 4, the largest exponent value (not bit pattern) M = 3, and the smallest exponent value m = -4.!!In the previous example, there is no explicit representation of 0, but there needs to be a special bit pattern reserved for 0 otherwise there would be no way to represent 0 without violating the normalization rule. We will assume a bit pattern of 0 000 000 000 000 000 represents 0.!!Using b, s, M, and m, we would like to characterize this floating point representation in terms of the largest positive representable number, the smallest (nonzero) positive representable number, the smallest gap between two successive numbers, the largest gap between two successive numbers, and the total number of numbers that can be represented.!

2-21! Chapter 2 - Data Representation! Error, Range, and Precision (cont )!!Largest representable number: b M (1 - b -s ) = 8 3 (1-8 -4 )!!!Smallest representable number: b m b -1 = 8-4 - 1 = 8-5!!!Largest gap: b M b -s = 8 3-4 = 8-1!!!Smallest gap: b m b -s = 8-4 - 4 = 8-8!

2-22! Chapter 2 - Data Representation! Error, Range, and Precision (cont )!!Number of representable numbers: There are 5 components: (A) sign bit; for each number except 0 for this case, there is both a positive and negative version; (B) (M - m) + 1 exponents; (C) b - 1 values for the first digit (0 is disallowed for the first normalized digit); (D) b s-1 values for each of the s-1 remaining digits, plus (E) a special representation for 0. For this example, the 5 components result in: 2 ((3 (-4)) + 1) (8-1) 8 4-1 + 1 numbers that can be represented. Notice this number must be no greater than the number of possible bit patterns that can be generated in 16 bits, which is 2 16.!

2-23! Chapter 2 - Data Representation! Example Floating Point Format!!Smallest number is 1/8!!Largest number is 7/4!!Smallest gap is 1/32!!Largest gap is 1/4!!Number of representable numbers is 33.!

2-24! Chapter 2 - Data Representation! Gap Size Follows Exponent Size!!The relative error is approximately the same for all numbers.!!if we take the ratio of a large gap to a large number, and compare that to the ratio of a small gap to a small number, then the ratios are the same:!

2-25! Chapter 2 - Data Representation! Conversion Example!!Example: Convert (9.375 10-2 ) 10 to base 2 scientific notation!!start by converting from base 10 floating point to base 10 fixed point by moving the decimal point two positions to the left, which corresponds to the -2 exponent:.09375.! Next, convert from base 10 fixed point to base 2 fixed point:!!!.09375!!2!=!0.1875!!!.1875!!2!=!0.375!!!.375!!2!=!0.75!!!.75!!2!=!1.5!!!.5!!!2!=!1.0! Thus, (.09375) 10 = (.00011) 2.! Finally, convert to normalized base 2 floating point:!.00011 =.00011 2 0 = 1.1 2-4!

2-26! Chapter 2 - Data Representation! IEEE-754 Floating Point Formats!

2-27! Chapter 2 - Data Representation! IEEE-754 Examples!

2-28! Chapter 2 - Data Representation! IEEE-754 Conversion Example!!Represent -12.625 10 in single precision IEEE-754 format.!!step #1: Convert to target base. -12.625 10 = -1100.101 2!!Step #2: Normalize. -1100.101 2 = -1.100101 2 2 3!!Step #3: Fill in bit fields. Sign is negative, so sign bit is 1. Exponent is in excess 127 (not excess 128!), so exponent is represented as the unsigned integer 3 + 127 = 130. Leading 1 of significand is hidden, so final bit pattern is:!! 1 1000 0010. 1001 0100 0000 0000 0000 000!

2-29! Chapter 2 - Data Representation! Effect of Loss of Precision!!According to the General Accounting Office of the U.S. Government, a loss of precision in converting 24-bit integers into 24-bit floating point numbers was responsible for the failure of a Patriot anti-missile battery.!

2-30! Chapter 2 - Data Representation!!ASCII is a 7-bit code, commonly stored in 8- bit bytes.!! A is at 41 16. To convert upper case letters to lower case letters, add 20 16. Thus a is at 41 16 + 20 16 = 61 16.!!The character 5 at position 35 16 is different than the number 5. To convert character-numbers into number-numbers, subtract 30 16 : 35 16-30 16 = 5.!! ASCII Character Code!

2-31! Chapter 2 - Data Representation!!EBCDIC is an 8- bit code.!

2-32! Chapter 2 - Data Representation! Unicode Character Code!!Unicode is a 16- bit code.!