Data Representation

Post on 15-Jul-2015

126 views 2 download

transcript

Data Representation

CS2052 Computer Architecture

Computer Science & Engineering

University of Moratuwa

Dilum BandaraDilum.Bandara@uom.lk

Outline

Representing numbers

Unsigned

Signed

Floating point

Representing characters & symbols

ASCII

Unicode

2

Data Representation in Computers

Data are stored in Registers

Registers are limited in number & size

With a n-bit register

Min value 0

Max value 2n-1

3

n-1 n-2 ...… ... 2 01

n-bits

4

Data Representation

Data

Representation

• Represents quality or

characteristics

• Not proportional to a

value

• Name, NIC no, index no,

Address

Qualitative

Quantitative

• Quantifiable

• Proportional to value α

• No of students, marks for

CS2052, GPA

Data Representation (Cont.)

5

Data

Quantitative

Integers

Signed

Unsigned

Non-integers

Signed

UnsignedQualitative

Number Systems

Decimal number system

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Binary number system

0, 1

Octal number system

0, 1, 2, 3, 4, 5, 6, 7

Hexadecimal number system

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

6

Quantitative Numbers

Integers

Unsigned 20

Signed +20, -20

Non-integers

Floating point numbers - 10.25, 3.33333…, 1/8 = 0.125

7

Signed Integers

We need a way to represent negative values

3 representations

Sign & Magnitude representation (S&M)

Complement method

Bias notation or Excess notation

8

1. Sign & Magnitude Representation

n-bit unsigned magnitude & sign bit (S)

If S

0 – Integer is positive or zero

1 – Integer is negative or zero

Range –(2n-1) to +(2n-1)

9

sign n-1 ...n-2 ... 2 01

Magnitude (n-bits)

Example – Sign & Magnitude

If 8-bit register is used what are min & max

numbers?

What are 0000 0000 and 1000 0000 in decimal?

Representation of zero is not unique

10

Sign & Magnitude (Cont.)

Advantages

Sign reversal

Finding absolute value |a|

Flip sign bit

Disadvantage

Adding a negative of a number is not the same as

subtraction

e.g., add 2 and -3

Need different operations

Zero is not unique

11

2. Complement Method

Base = Radix

Radix r system means r number of symbols

e.g., binary numbers have symbols 0, 1

2 types

r’s complement

(r – 1)’s complement

Where r is radix (base) of number system

Examples

Decimal 9’s & 10’s complement

Binary 1’s & 2’s complement

12

Complement Method – Definition

Given a number m in base/radix r & having n

digits

(r – 1)’s complement of m is

(rn – 1) – m

r ’s complement of n is

(rn – 1) – m + 1 = rn – m

13

Example – Complement Method

If m = 5982 & n = 4 digits 9’s complement is

9 9 9 9 - maximum representable no

5 9 8 2 –

4 0 1 7

10’s complement

9 9 9 9 or 1 0 0 0 0

5 9 8 2 – 5 9 8 2 –

4 0 1 7 4 0 1 8

1 +

4 0 1 814

Example – Complement Method

If m = 382 & n = 3

-n = -382 =

9 9 9 9 9 9

3 8 2 – 3 8 2 -

6 1 7 6 1 7

1 +

6 1 8

-382 = 617 or 618

Depending on which complement we use

These are called complementary pair

15

1’s complement

Calculated by

(2n – 1) – m

If m = 0101

1’s complement of m on a 4-bit system

1 1 1 1

0 1 0 1 –

1 0 1 0

This represents -5 in 1’s complement

16

Finding 1’s Complement – Short Cut

Invert each bit of m

Example

m = 0 0 1 0 1 0 1 1

1’s complement of m = 1 1 0 1 0 1 0 0

m = 0 0 0 0 0 0 0 0 = 0

1’s complement of m = 1 1 1 1 1 1 1 1 = -0

Values range from -127 to +127

17

Addition with 1’s Complement

If results has a carry add it to LSB (Least

Significant Bit)

Example

Add 6 and -3 on a 3-bit system

6 = 1 1 0

-3 = 1 0 0 +

= 1 0 1 0

1 +

0 1 1

18

2’s Complement

Doesn’t require end-around carry operation as in

1’s complement

2’s complement is formed by

Finding 1’s complement

Add 1 to LSB

New range is from -128 to +127

-128 because of +1 to negative value

19

Example – 2’s Complement

Find 2’s complement of 0101011

m = 0 1 0 1 0 1 1

= 1 0 1 0 1 0 0

________ 1 +

2’s = 1 0 1 0 1 0 1

Short-cut

1. Search for the 1st bit with value 1 starting from LSB

2. Inver all bits after 1st one

20

Example – 2’s Complement (Cont.)

Add 6 and -5 on a 4-bit system

5 = 0101

-5 = 1011

6 = 0 1 1 0

-5 = 1 0 1 1+

1 0 0 0 1 0 0 0 1

21

Discard

1’s vs. 2’s Complement

1’s complement has 2 zeros (+0, -0)

Value range is less than 2’s complement

2’s complement only has a single zero

Value range is unequal

No need of a separate subtract circuit

Doing a NOT operation is much more cost effective

interms of circuit design

However, multiplication & division is slow

22

S&M, 1’s, & 2’s

23

Source: www3.ntu.edu.sg/home/ehchua/programming/java/DataRepresentation.html

4-bit, 2’s Complement Adder

Subtractor

24

Source: www.instructables.com/id/How-to-Build-an-8-Bit-Computer/step7/The-ALU/

Detecting Negative Numbers &

Overflow

Check for MSB

To find magnitude

1’s complement

Flip all bits

2’s complement

Flip all bits + 1

Rules to detect overflows in 2’s complement

If sum of 2 positive numbers yields a negative result,

sum has overflowed

If sum of 2 negative numbers yields a positive result,

sum has overflowed

Else, no overflow 25

3. Bias Notation

Number range to be represented is given a

positive bias so that smallest unsigned value is

equal to -B

If bias is B

Value B in number range becomes zero

If bias is 127 for 8-bit number range is

-127 (0 - 127) to 128 (255 - 127)26

n

i

i

i Bb0

2

Bias Notation (Cont.)

27

Bit pattern Unsigned Biased-127

0000 0000 +0 -127

0000 0001 +1 -126

0000 0010 +2 -125

… … …

0111 1110 +126 -1

0111 1111 +127 +0

1000 0000 +128 +1

… … …

1111 1111 +255 +128

Floating Point Numbers

We needed to represent fractional values &

values beyond 2n – 1

+3207.23 = 3.20723x103

-0.000321 = -3.21x10-4

28

Sign

Mantissa

Radix

(base)

Exponent

Floating Point Numbers (Cont.)

29

es mN 2.)1(

Sign

Mantissa

Radix

Exponent

sign en-1 ...… e0 … m0m1mn-1 …mn-2

MantissaExponent

IEEE Floating Point Standard (FPS)

2 standards

1. Single precision

32-bits

23-bit mantissa

8-bit exponent

1-bit sign

2. Double precision

64-bits

52-bit mantissa

11-bit exponent

1-bit sign

30

31 30 23 22 0

S Exponent Mantissa (bits 0-22)

63 62 52 51 0

S Exponent Mantissa (bits 0-51)

IEEE Floating Point Standard (Cont.)

E – 127 = e

E = e + 127

What is stored is E

31

s31 e30 ...… e23 … m0m1m22 …mn-2

MantissaExponent

1272].1[)1( Es mN

Single Precision

23-bit mantissa

m ranges from 1 to (2 – 2-23 )

8-bit exponent

E ranges from 1 to 254

0 & 255 reserved to represent -∞, +∞, NaN

e ranges from -126 to +127

Maximum representable number

2 x 2127 = 2128

32

Review – Binary Fractions

What is 101.11012 in decimal? 22 x 1 + 21 x 0 + 20 x 1 + 2-1 x 1 + 2-2 x 1 + 2-3 x 0 + 2-4 x 1

= 4 x 1 + 2 x 0 + 1 x 1 + 0.5 x 1 + 0.25 x 1 + 0.125 x 0 + 0.0625 x 1

= 4 + 1 + 0.5 + 0.25 + 0.0625

= 5.8125

What is 5.812510 in binary?

Integer – 5 = 101

Fraction – Keep multiplying fraction until answer is 1

0.8125 x 2 = 1.625

0.625 x 2 = 1.25

0.25 x 2 = 0.5

0.5 x 2 = 1.0

0.812510 = .1101233

Example – Single Precision

IEEE Single Precision Representation of 17.1510

Find 17.1510 in binary

17.1510 = 10001.00100112

= 1.00010010011 x 24

E = e + 127

E = 4 + 127 = 131

34

0 1000 0011 0001 0010 0110 0000 ……..

MantissaExponent

Character Representation

Belong to category of qualitative data

Represent quality or characteristics

Includes

Letters a-z, A-Z

Digits 0-9

Symbols !, @ , *, /, &, #, $

Control characters <CR>, <BEL>, <ESC>, <LF>

35

Character Representation (Cont.)

With a single byte (8-bits) 256 characters can be

represented

Standards

ASCII – American Standard Code for Information

Interchange

EBCDIC – Extended Binary-Coded Decimal

Interchange Code

Unicode

36

ASCII

De facto world-wide standard

Used to represent

Upper & lower-case Latin letters

Numbers

Punctuations

Control characters

There are 128 standard ASCII codes

Can be represented by a 7 digit binary number

000 0000 through 111 1111

Plus parity bit

37

ASCII Hex Symbol

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

20

21

22

23

24

25

26

27

28

29

2A

2B

2C

2D

2E

2F

(space)

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

38

ASCII Table

ASCIIHex Symbol

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

NUL

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

TAB

LF

VT

FF

CR

SO

SI

ASCII Hex Symbol

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

30

31

32

33

34

35

36

37

38

39

3A

3B

3C

3D

3E

3F

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

ASCII Hex Symbol

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

50

51

52

53

54

55

56

57

58

59

5A

5B

5C

5D

5E

5F

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

39

ASCII Table (Cont.)

ASCII Hex Symbol

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

ASCII Hex Symbol

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

60

61

62

63

64

65

66

67

68

69

6A

6B

6C

6D

6E

6F

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

ASCII – Things to Note

ASCII codes for digits aren’t equal to numeric

value

Uppercase & lowercase alphabetic codes differ

by 0x20

Shift key clears bit 5

0x20 = 32 = 0010 0000

Example:

A = 65 = 0100 0001

a = 97 = 0110 0001

Most languages need more than 128 characters

40

Unicode (www.unicode.org)

Designed to overcome limitation of number of characters

Assigns unique character codes to characters in a wide range of languages

A 16-bit character set

UCS-2

UCS-4 is 32-bit

65,536 (216) distinct Unicode characters

Unicode provides a unique number for every character,no matter what the platform,no matter what the program,no matter what the language

41

Unicode (Cont.)

42

Source: www3.ntu.edu.sg/home/ehchua/programming/java/DataRepresentation.html

Unicode – Sinhala & Tamil

43