60
Signed Numbers CS208

Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Signed Numbers

CS208

Page 2: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Signed Numbers Until now we've been concentrating on unsigned

numbers. In real life we also need to be able represent signed numbers ( like: -12, -45, +78).

A signed number MUST have a sign (+/-). A method is needed to represent the sign as part of the binary representation.

Two signed number representation methods are:

Sign/magnitude representation

Twos-complement representation

Page 3: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign/Magnitude Representation

 In sign/magnitude (S/M) representation, the

leftmost bit of a binary code represents the sign of the value:

0 for positive, 1 for negative;

The remaining bits represent the numeric value.

Page 4: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign/Magnitude Representation

 To compute negative values using Sign/Magnitude (S/M) representation:

1) Begin with the binary representation of the positive value

2) Then flip the leftmost zero bit.  

Page 5: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign/Magnitude Representation

 Ex 1. Find the S/M representation of -610

  So: -610 = 100001102

(in 8-bit sign/magnitude form)

  Step 2: If the number you want to represent is negative, flip leftmost bit

10000110

  Step 1: Find binary representation using 8 bits

610 = 000001102

Page 6: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign/Magnitude Representation

  Ex 2. Find the S/M representation of 7010

 Step 2: If the number you want to represent isnegative, flip left most bit

01000110 (positive -- no flipping)

  Step 1: Find binary representation using 8 bits

7010 = 010001102

  So: 7010 = 010001102

(in 8-bit sign/magnitude form) 

Page 7: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign/Magnitude Representation

  Ex 3. Find the S/M representation of -3610

 Step 2: If the number you want to represent isnegative, flip left most bit

10100100

  Step 1: Find binary representation using 8 bits

-3610 = 001001002

  So: -3610 = 101001002

(in 8-bit sign/magnitude form) 

Page 8: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign bit: 0 positive 1 negative

Sign bit: 0 positive 1 negative

31 remaining bits for magnitude (i.e. the value)

31 remaining bits for magnitude (i.e. the value)

32-bit example:

0 000 0000 0000 0000 0000 0000 0000 10011 000 0000 0000 0000 0000 0000 0000 1001

+9

-9

Sign/Magnitude Representation

Page 9: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

Convert the following decimal numbers to 8-bit sign/magnitude representation:

35

-60

-101

(Answers on NEXT slide)

Page 10: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answers

35 = 00100011

-60 = 10111100

-101 = 11100101

Page 11: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

• Two different representations for 0!

0000

0111

0011

1011

11111110

1101

1100

1010

1001

10000110

0101

0100

0010

0001

+0

+1

+2

+3

+4

+5

+6

+7-0

-1

-2

-3

-4

-5

-6

-7

Inner numbers:Binary

representation

Seven Positive Numbers and “Positive” Zero

Seven Negative Numbers and

“Negative” Zero

• Two discontinuities

Problems with Sign/Magnitude

Page 12: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Another method used to represent negative numbers (used by most modern computers) is two’s complement.

 The leftmost bit STILL serves as a sign bit: 0 for positive numbers, 1 for negative numbers.

Page 13: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

To compute negative values using Two’s Complement representation:

1) Begin with the binary representation of the positive value

2) Complement (flip each bit -- if it is 0 make it 1 and visa versa) the entire positive number

3) Then add one.

Page 14: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 1. Find the 8-bit two’s complement representation of –610

Step 1: Find binary representation of the positive value in 8 bits

610 = 000001102

Page 15: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 1 continuedStep 2: Complement the entire

positive value

Positive Value: 00000110

Complemented: 11111001

Page 16: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

So: -610 = 111110102

(in 8-bit 2's complement form)

Ex 1, Step 3: Add one to complemented value

 

(complemented) -> 11111001

(add one) -> + 1

11111010

Page 17: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 2. Find the 8-bit two’s complement representation of 2010

Step 1: Find binary representation of the positive value in 8 bits

2010 = 000101002

20 is positive, so STOP after step 1!

So: 2010 = 000101002

(in 8-bit 2's complement form)

Page 18: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 3. Find the 8-bit two’s complement representation of –8010

Step 1: Find binary representation of the positive value in 8 bits

8010 = 010100002

-80 is negative, so continue…

Page 19: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 3 Step 2: Complement the entire positive

value

Positive Value: 01010000

Complemented: 10101111

Page 20: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

So: -8010 = 101100002

(in 8-bit 2's complement form)

Ex 3, Step 3: Add one to complemented value

 

(complemented) -> 10101111

(add one) -> + 1

10110000

Page 21: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

Convert the following decimal numbers to 8-bit 2’s complement representation:

-73

45

-97

(Answers on NEXT slide)

Page 22: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answers

-73 = 10110111

45 = 00101101

-97 = 10011111

Page 23: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation Alternate method -- replaces previous

steps 2-3 

Step 2: Scanning the positive binary representation from right to left,

find first one bit, from low-order (right) end

Step 3: Complement (flip) the remaining bits to the left.

  00000110 (left complemented) --> 11111010 

Page 24: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 1: Find the Two’s Complement of -7610

 

Step 1: Find the 8-bit binary representation of the positive value.

 

7610 = 010011002

 

Page 25: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Step 2: Find first one bit, from low-order (right) end, and complement the pattern to the left.

  01001100 (left complemented) -> 10110100  

So: -7610 = 101101002

(in 8-bit 2's complement form) 

Page 26: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 2: Find the Two’s Complement of 7210

Step 1: Find the 8 bit binary representation of the positive value.

  7210 = 010010002

Steps 2-3: 72 is positive, so STOP after step 1!

So: 7210 = 010010002

(in 8-bit 2's complement form)

Page 27: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 3: Find the Two’s Complement of -2610

 

Step 1: Find the 8-bit binary representation of the positive value.

 

2610 = 000110102

 

Page 28: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Ex 3, Step 2: Find first one bit, from low-order (right) end, and complement the pattern to the left.

  00011010(left complemented) -> 11100110  

So: -2610 = 111001102

(in 8-bit 2's complement form) 

Page 29: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Sign bit: 0 --> positive 1 --> negative

Sign bit: 0 --> positive 1 --> negative

31 remaining bits for magnitude(i.e. value stored in two’s complement form)

31 remaining bits for magnitude(i.e. value stored in two’s complement form)

32-bit example:

0 000 0000 0000 0000 0000 0000 0000 10011 111 1111 1111 1111 1111 1111 1111 0111

+9

-9

Two’s Complement Representation

Page 30: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

Convert the following decimal numbers to 8-bit 2’s complement representation, using method 2:

-36

-66

15

(Answers on NEXT slide)

Page 31: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answers

-36 = 11011100

-66 = 10111110

15 = 00001111

Page 32: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 1: Find the decimal equivalent of the

8-bit 2’s complement value 111011002

 

Step 1: Determine if number is positive or negative:

Leftmost bit is 1, so number is negative.

Page 33: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 1, Step 2: Find first one bit, from low-order (right) end, and complement the pattern to the left.

  11101100

(left complemented) 00010100

Page 34: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 1, Step 3: Determine the numeric value:

000101002 = 16 + 4 = 2010

So: 111011002 = -2010

(8-bit 2's complement form) 

Page 35: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 2: Find the decimal equivalent of the

8-bit 2’s complement value 010010002

 

Step 1: Determine if number is positive or negative:

Leftmost bit is 0, so number is positive.

Skip to step 3.

Page 36: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex2, Step 3: Determine the numeric value:

010010002 = 64 + 8 = 7210

So: 010010002 = 7210 (8-

bit 2's complement form) 

Page 37: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 3: Find the decimal equivalent of the

8-bit 2’s complement value 110010002

 

Step 1: Determine if number is positive or negative:

Leftmost bit is 1, so number is negative.

Page 38: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 3, Step 2: Find first one bit, from low-order (right) end, and complement the pattern to the left.

  11001000(left complemented) 00111000

Page 39: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement to Decimal

Ex 3, Step 3: Determine the numeric value:

001110002 = 32 + 16 + 8 =

5610

So: 110010002 = -5610

(8-bit 2's complement form) 

Page 40: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

• Only one discontinuity now

0000

0111

0011

1011

11111110

1101

1100

1010

1001

1000

0110

0101

0100

0010

0001

+0+1

+2

+3

+4

+5

+6

+7-8-7

-6

-5

-4

-3-2

-1

Inner numbers:Binary

representation

Eight Positive

Numbers

Re-order Negative numbers to eliminate one Discontinuity

Note: Negative Numbers still have 1 for the most significant bit (MSB)

• Only one zero• One extra negative number

S/M problems solved with 2s complement

Page 41: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Biggest reason two’s complement used in most systems today?

The binary codes can be added and subtracted as if they were unsigned binary numbers, without regard to the signs of the numbers they actually represent.

Page 42: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

For example, to add +4 and -3, we simply add the corresponding binary codes, 0100 and 1101:

 

0100 (+4)+1101 (-3)

0001 (+1)

NOTE: A carry to the leftmost column has been ignored.

The result, 0001, is the code for +1, which IS the sum of +4 and -3.

Page 43: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Twos Complement Representation

Likewise, to subtract +7 from +3:  0011 (+3)

- 0111 (+7) 1100 (-4) NOTE: A “phantom” 1 was borrowed from

beyond the leftmost position.

The result, 1100, is the code for -4, the result of subtracting +7 from +3. 

Page 44: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

Convert the following decimal numbers to 8-bit 2’s complement representation.

Then ADD them in binary.

Finally, check your results by converting back to decimal:

-33 + 17

(Answers on NEXT slide)

Page 45: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answer

-33 = 11011111

+17 = + 00010001

11110000

11110000 is negative

Convert to 00010000 = 16

So answer = -16(which IS the result of –33 + 17)

Page 46: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Representation

Summary - Benefits of Twos Complements:

Addition and subtraction are simplified in the two’s-complement system,

-0 has been eliminated, replaced by one extra negative value, for which there is no corresponding positive number.

Page 47: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Valid Ranges

For any integer data representation, there is a LIMIT to the size of number that can be stored.

The limit depends upon number of bits available for data storage.

Page 48: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Unsigned Integer Ranges

Range = 0 to (2n – 1)

where n is the number of bits used to store the unsigned integer.

Numbers with values GREATER than (2n – 1) would require more bits. If you try to store too large a value without using more bits, OVERFLOW will occur.

Page 49: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Unsigned Integer Ranges

Example: On a system that stores unsigned integers in 16-bit words: 

Range = 0 to (216 – 1)

= 0 to 65535

 

Therefore, you cannot store numbers larger than 65535 in 16 bits.

Page 50: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Signed S/M Integer Ranges

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

where n is the number of bits used to store the sign/magnitude integer.

 Numbers with values GREATER than +(2(n-1) – 1)

and values LESS than -(2(n-1) – 1) would require more bits. If you try to store too large/too small a value without using more bits, OVERFLOW will occur.

Page 51: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

S/M Integer Ranges

Example: On a system that stores unsigned integers in 16-bit words: 

Range = -(215 – 1) to +(215 – 1)

= -32767 to +32767

 Therefore, you cannot store numbers larger

than 32767 or smaller than -32767 in 16 bits.

Page 52: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Ranges

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

where n is the number of bits used to store the two-s complement signed integer.

 Numbers with values GREATER than +(2(n-1) – 1)

and values LESS than -2(n-1) would require more bits. If you try to store too large/too small a value without using more bits, OVERFLOW will occur.

Page 53: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Two’s Complement Ranges

Example: On a system that stores unsigned integers in 16-bit words: 

Range = -215 to +(215 – 1)

= -32768 to +32767

 Therefore, you cannot store numbers larger

than 32767 or smaller than -32768 in 16 bits.

Page 54: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

What range of values can be represented by:

a) a 6-bit unsigned number

b) a 6-bit sign/magnitude number

c) a 6-bit 2's complement number

(Answers on NEXT slide)

Page 55: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answers

Unsigned = 0 to (26 – 1)

= 0 to 63

S/M = -(25 – 1) to +(25 – 1)

= -31 to +31

2’s Comp = -25 to +(25 – 1)

= -32 to +31

Page 56: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Using Ranges for Validity Checking

Once you know how small/large a value can be stored in n bits, you can use this knowledge to check whether you answers are valid, or cause overflow.

Overflow can only occur if you are adding two positive numbers or two negative numbers

Page 57: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Using Ranges for Validity Checking

Ex 1:

Given the following 2’s complement equations in 5 bits, is the answer valid?

11111 (-1) Range =+11101 (-3) -16 to +15 11100 (-4) VALID

Page 58: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Using Ranges for Validity Checking

Ex 2:

Given the following 2’s complement equations in 5 bits, is the answer valid?

10111 (-9) Range =+10101 (-11) -16 to +15 01100 (-20) INVALID

Page 59: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Try It Yourself

Perform the following 6-bit 2’s complement addition. Indicate if overflow occurs. Check your answers by converting to decimal (remember, if the leftmost bit is ONE, the value is negative).

25 -9+ 16 + -7

(Answers on next slide)

Page 60: Signed Numbers CS208. Signed Numbers Until now we've been concentrating on unsigned numbers. In real life we also need to be able represent signed numbers

Answers

0 1 1 0 0 1 (+25)

+0 1 0 0 0 0 (+16)

1 0 1 0 0 1 (+41) out of

(invalid) range (over 31)

1 1 0 1 1 1 (-9)

+1 1 1 0 0 1 (-7)

1 1 0 0 0 0 (-16) OKAY