Sign Extension and Overflow

Download Report

Transcript Sign Extension and Overflow

1
Bits, Data types, and Operations:
Chapter 2
COMP 2610
Dr. James Money
COMP 2610
Addition and Subtraction

We will now use only two’s complement
representation for integers

The arithmetic proceeds as we introduced
before using long addition

At each stage there is a sum digit and a carry
digit
Example

Using 5 bit notation, what is 11+3?

Note
–
(11)10 = (01011)2
–
(3)10 = (00011)2
–
Sum is (01110)2 = (14)10
Subtraction

Recall the definition of subtraction from
algebra:
For all real numbers a, b, we define
subtraction by
a-b = a+(-b)
Negation

How do we form –b?

We take b and form the the two’s
complement of the number

What is the two’s complement form in 5 bit
notation for
–
5
–
-10
Subtraction

What is 14-9?
–
(14)10 = (01110)2
–
(9)10 = (01001)2
–
(-9)10 = (10111)2
–
Thus 14-9 = 14+-9 = (00101)2 = (5)10
Addition of same number

What happens when you add a number to
itself, that is x+x?

Using 8 bits, consider x=(59)10 = (00111011)2

We get x+x=2x = (118)10 = (01110110)2

This is the bits shifted to the left by one!
Addition of same number

Why?

59 = 0x26+1x25+1x24+1x23+0x22+0x21+1x20

So 59+59 = 2 x 59 =
2(0x26+1x25+1x24+1x23+0x22+0x21+1x20)
= 0x27+1x26+1x25+1x24+0x23+0x22+1x21

This is shifting the bits to the left by one
Sign Extension

Many times we represent a number with
fewer bits to save space

For example, (5)10 = (00000000000101)2

And it is the same as (000101)2

For positive numbers, we can zero extend
the bits to the left to get the same number
Sign Extension

How about negative numbers?

For (-5)10 = (111011)2 in 8 bits

In 16 bits, we get
(11111111111011)2

We add leading ones for negative numbers
Sign Extension

+
Suppose we had to add the numbers
0000000000001101
13
111011
-5
Sign Extension

In either case, we extend the bits using SignEXTension, abbreviated SEXT

That is we extend by the correct sign:
–
By 0 if positive
–
By 1 if negative
Overflow

So far we have assumed that the sum of the
two integers is small enough to be
represented in the number of available bits

What happens if this is not the case?

We get a condition known as overflow
Overflow

This situation is analogous to the old
odometers which had only 5 digits

What happens after 99999?

It rolls back to 00000 and looks like a new
car with no miles

The carry of ten-thousands digit is lost
Overflow

For two’s complement arithmetic, this can be
more subtle

Consider 5 bits numbers and add 9+11
01001
+ 01011
10100
Overflow

However, this number is -12!

We say this result has overflowed the
capacity of the representation since we
added to positive numbers and got a
negative one
Overflow

Consider -12+-6:
10100
+ 11010
01110