1 Lecture 2 Complement Floating Point Number Character Encoding

Preview:

Citation preview

1

Lecture 2

Complement Floating Point Number Character Encoding

2

Complement

Complement as a representation of negative number More commonly used

1’s complement 2’s complement (used in Personal Computer)

3

Complement (for binary)

1’s complement 1’s complement of a number is just to change 0 to 1

and 1 to 0. e.g. 10 0100 => 1’s complement is 01 1011

2’s complement 2’s complement of a number is just to add 1 to

its 1’s complement e.g. 10 0100 => 2’s complement is 01 1100

4

Example - Complement

Consider the binary number 100 0110 it’s 1’s complement is 011 1001

it’s 2’s complement is 011 1010

How to differentiate whether a binary number is positive or negative?

* Use a leading zero for positive number! Why?

5

1’s complement Arithmetic

Positive Number + Negative Number Result is a positive number Result is a negative number

Positive Number + Positive Number Overflow (explain in slide 24)

Negative Number + Negative Number Underflow (explain in slide 25)Note:Convert the negative number to 1’s complement before any

calculatione.g. 10 + (-8) => 0 1010 + 1 0111

1’s complement of 0 1000

6

1’s Complement Arithmetic

Positive Number + Negative Number Result is a positive number (rotate)

e.g. 10 + (-8)

0 1010 0 0001

+ 1 0111 + 1

10 0001 0 0010

RotateAnswer is 210

7

1’s Complement Arithmetic

Positive Number + Negative Number Result is a positive number (Rotate) Result is a negative number (How do you know the

result is negative? )

Example8 + (-10)

0 1000+ 1 0101

1 1101

Negative Number (used 1’s complement to get the value)

8

1’s Complement Arithmetic

Positive Number + Positive Number Overflow

Example

8 + 9 = 17

0 1000

+ 0 1001

1 0001 => -14

It may be wrongly interpreted as a negative number. So, we call this case as overflow.

9

1’s Complement Arithmetic

Negative Number + Negative Number underflow

Example

(-8) + (-9) = -17

1 0111

+ 1 0110

0 1001 => 9

It may be wrongly interpreted as a positive number. So, we call this case as underflow.

10

2’s complement

How to calculate 2’s complement. Add 1 to 1’s complement

1110 0011 1’s Complement 0001 1100 2’s Complement 0001 1101

11

2’s complement Arithmetic

Positive Number + Negative Number Result is a positive number Result is a negative number

Positive Number + Positive Number Overflow

Negative Number + Negative Number UnderflowNote:Convert the negative number to 1’s complement before any

calculatione.g. 10 + (-8) => 0 1010 + 1 1000

2’s complement of 0 1000

12

2’s Complement Arithmetic

Positive Number + Negative Number Result is a positive number (Discard)

e.g. 10 + (-8)

0 1010

+ 1 1000

10 0010

Discard

0 0010

Answer is 210.

13

2’s Complement Arithmetic

Positive Number + Negative Number

Result is a negative numberExample

8 + (-10)

0 1000

+ 1 0110

1 1110

Negative Number (used 2’s complement to get the value)

14

2’s Complement Arithmetic

Positive Number + Positive Number Overflow

Example

8 + 9 = 17

0 1000

+ 0 1001

1 0001 => -15

It may be wrongly interpreted as a negative number. So, we call this case as overflow.

15

2’s Complement Arithmetic

Negative Number + Negative Number underflow

Example

(-8) + (-9) = -17

1 1000

+ 1 0111

0 1111 => 15

It may be wrongly interpreted as a positive number. So, we call this case as underflow.

16

Example - Arithmetic with complement

Example for 1’s complement arithmetic

Example 1 Example 2 Example 3

17

Example - Arithmetic with complement

Example for 2’s complement arithmetic

Example 1 Example 2 Example 3

18

Floating-point Numbers

IEEE Standard 754 Floating Point Representation Represent real number in scientific notation Represent a number with a base and exponent i.e. 0.00001101 => 1.101 x 2 -5

base exponent

19

Floating-point Number

Advantages Possible to represent a very large and very small

number e.g. 10+100 10-100

It will not lose precision (due to round-off) CPU will have instruction (low level command to

support floating point calculation – e.g. co-processor)

20

Floating-point Number

Format Three basic components: the sign, the

exponent [指數 ] and the mantissa [尾數 ]

For a 32-bit floating point number

21

Floating-point Number

Sign Bit Zero denotes a positive number; one denotes

a negative number. Exponent

Bias is used (so we can differentiate between positive and negative)

e.g. for 32 bits, bias is -127 and for 64 bits bias is 1023. (???????Bias)

exponent > 127 ==> positive exponent exponent < 127 ==> negative exponent

*12710 = 0111 11112

22

Floating-point Number

Mantissa It must be normalized (i.e. it must in the format

of 1.XXXX) So, the one before the decimal can be

assumed. e.g. 100.100 mantissa is 00100 Do you know why?

Exponent => 2 so mantissa is 1.00100 Assume the 1 before decimal => 00100

Check the 64-bit floating point standard yourselves!

23

Floating Point Number

Steps

1. Convert the number to binary

2. Convert the binary number to normalized form

3. Find out the sign, exponent and mantissa

24

Floating-point Number

Example Number: +101011.0101

Sign bit : 0

Normalized Mantissa (23 bits): (E.g. 1.010110101) 010 1101 0100 0000 0000 0000

Exponent (8 bits): 1000 0100 (127 + 5 = 13210)

Floating Point:

0 1000 0100 010 1101 0100 0000 0000 0000

Sign Exponent Mantissa

25

Character Representation

Binary Code Decimal ‘0’ - ‘9’ by 4-bits code Easy conversion to decimal digits for printing

or display Faster decimal calculations

Extended Binary Coded Decimal Code (EBCDIC) 8-bits code to represent more characters

26

Character Representation

American Standard Code for Information Interchange (ASCII) - 7 bits Define a vendor-independent character coding system (including some control character e.g. Esc code for printer) Support data communication between computers and peripheral / telecommunication device

Note:

The character will be stored in form of ASCII code

27

ASCII Table

28

Multinational Character

Korea, Japan, Chinese and Vietnamese Characters Unicode (Version 5.1) (CKJV)

http://www.unicode.org/versions/Unicode5.1.0/

Big5 (Taiwan) for Traditional Chinese Character GB (China) code for Simplified Chinese character

29

Character Encoding

30

Unicode

Start Program Accessories System Tools Character Map

Recommended