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
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
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.
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
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
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
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
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
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
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
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.
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.
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
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
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
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