16
Data Representation - Part II

Data Representation - Part II

  • Upload
    elata

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Data Representation - Part II. Characters. A variable may not be a non-numerical type Character is the most common non-numerical type in a programming language When a key is pressed on the keyboard a unique representation of the key is transmitted to the computer - PowerPoint PPT Presentation

Citation preview

Page 1: Data Representation - Part II

Data Representation - Part II

Page 2: Data Representation - Part II

Characters A variable may not be a non-numerical type Character is the most common non-numerical

type in a programming language When a key is pressed on the keyboard a

unique representation of the key is transmitted to the computer

ASCII1 assigns unique representations to 128 characters (see page 102 of the text)

1American Standard for Computer Information Interchange

Page 3: Data Representation - Part II

While the characters are not numbers, their unique representations are 7-bit unsigned binary representation

The representations allow programmers to easily compare characters using equality or relational operators (e.g., >, <=)

An operation that can take advantage of how the ASCII representation are arranged is sorting.

Page 4: Data Representation - Part II

Example 10.1 (char integer)moveint 0get ch

procch:bgt ch,’9’,notadigitblt ch,’0’,notadigitsub ch,ch,’0’mul int,int,10add int,int,chget chb procch

notadigit:

Check that the character read is a digit

Convert into decimal

Page 5: Data Representation - Part II

Floating Point Representation

The IEEE Floating Point Standard (FPS) is a widely used floating point representation from among the many alternative formats

The representation for floating point numbers are broken into two parts: mantissa (variant of a scaled, sign magnitude

integer)exponent (8-bit, biased-127 integer)

1 + 2

23012122 ffff

Page 6: Data Representation - Part II

A number N represented in floating point is determined by the mantissa m and an exponent e

N = (-1)s * m * 2e

If the sign of the mantissa is negative,

s = 1; if the sign of the mantissa is positive, s = 0.

The mantissa is normalized, i.e., 1 m < 2 In the FPS format, the precision is specified

as 24 bits thus m = 1.f22f21…f1f0

1 + 2

23012122 ffff

Page 7: Data Representation - Part II

Conversion to Floating Point Representation1.Break the decimal number into two parts:

an integer and a fraction

2.Convert the integer into binary and place it to the left of the binary point

3.Convert the fraction into binary and place it to the right of the binary point

4.Write it in scientific notation and normalize

Page 8: Data Representation - Part II

Example 10.2Convert 22.625 to floating point representation

1. Convert 22 to binary. 2210 = 101102

2. Convert .625 to binary

2*.625 = 1 + .25

2*.25 = 0 + .5

2*.5 = 1 + 0

3. Thus 22.62510 = 10110.1012

4. In scientific notation: 10110.101*20

Normalized form: 1.0110101*24

.62510=.1012

Page 9: Data Representation - Part II

IEEE FPS Representation

Given the floating point representation

N = (-1)s * m * 2e where m = 1.f22f21…f1f0

we can convert it to the IEEE FPS format using the relations:

F = (m-1)*2n E = e + 127

S = s

S E F

Page 10: Data Representation - Part II

Single-Precision Floating Point

The IEEE FPS single precision format has 32 bits distributed as

0 E 255, thus the true exponent e is restricted so that -126 e 127

S E F

1 8 23

F = fractional part of the significand

Page 11: Data Representation - Part II

Zero and the Hidden bit In IEEE FPS, zero is represented by

setting E = F = 0 regardless of the sign bit, thus there are two representations for zero: +0 and -0.

+ by S=0, E=255, F=0 - by S=1, E=255, F=0 NaN or Not-a-Number by E=255, F0 (may result from 0 divide by 0)

The leading 1 in the fraction is not represented. It is the hidden bit.

Page 12: Data Representation - Part II

Converting to IEEE FPS

1.Convert into a normalized floating point representation

2.Bias the exponent. The result will be E.

3.Put the values into the correct field. Note that only the fractional part of the significand is placed into F.

Page 13: Data Representation - Part II

Example 10.3Convert 22.625 to IEEE FPS format (single precision)

1. In scientific notation: 10110.101*20

Normalized form: 1.0110101*24

2. Bias the exponent: 4 + 127 = 131

13110 = 100000112

3. Place into the correct fields.

S = 0

E = 10000011

F = 011 0101 0000 0000 0000 0000

100000110

S E F

01101010000000000000000

Page 14: Data Representation - Part II

Example 10.4Convert 17.15 to IEEE FPS format (single-precision)

17.1510 = 10001.0010 0110 0110 0110 011*20

1. Normalized form:

1. 0001 0010 0110 0110 0110 011 * 24

2. Bias the exponent: 4 + 127 = 131

13110 = 100000112

3. Place into the correct fields.

S = 0

E = 10000011

F = 0001001001100110011001100010010011001100110011100000110

S E F

Page 15: Data Representation - Part II

Example 10.5Convert -83.7 to IEEE FPS format (single precision)

2*.7 = 1 + .4

2*.4 = 0 + .8

2*.8 = 1 + .6

2*.6 = 1 + .2

2*.2 = 0 + .4

2*.4 = 0 + .8

2*.8 = 1 + .6

2*.6 = 1 + .2

2*.2 = 0 + .4

. . .

-83.710=-1010011.101100110

Note: this is in single-precisionfloating point representationformat but not FPS format

Page 16: Data Representation - Part II

1. In scientific notation:

-1010011.101100110 * 100

Normalized form: -1.010011101100110 * 26

2. Bias the exponent: 6 + 127 = 133

13310 = 100001012

3. Place into the correct fields.

S = 1

E = 10000101

F = 01001110110011001100110

01001110110011001100110100001011

S E F