1 / 16

Data Representation - Part II

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

elata
Download Presentation

Data Representation - Part II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Representation - Part II

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

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

  4. Check that the character read is a digit Convert into decimal Example 10.1 (char integer) move int 0 get ch procch:bgt ch,’9’,notadigit blt ch,’0’,notadigit sub ch,ch,’0’ mul int,int,10 add int,int,ch get ch b procch notadigit:

  5. 1 + 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)

  6. 1 + • A number N represented in floating point is determined by the mantissam and an exponente 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

  7. Conversion to Floating Point Representation 1. 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

  8. .62510=.1012 Example 10.2 Convert 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

  9. S E F 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

  10. 1 8 23 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 F = fractional part of the significand

  11. 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 • NaNor Not-a-Number by E=255, F¹0 (may result from 0 divide by 0) • The leading 1 in the fraction is not represented. It is the hidden bit.

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

  13. S E 0 10000011 F Example 10.3 Convert 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 01101010000000000000000

  14. 0 10000011 00010010011001100110011 S E F Example 10.4 Convert 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 = 00010010011001100110011

  15. Note: this is in single-precision floating point representation format but not FPS format -83.710=-1010011.101100110 Example 10.5 Convert -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 . . .

  16. 1 10000101 01001110110011001100110 S E F 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

More Related