Presentation is loading. Please wait.

Presentation is loading. Please wait.

Datorteknik IntegerAddSub bild 1 Integer arithmetic Depends what you mean by "integer" Assume at 3-bit string. –Then we define zero = 000 one = 001 Use.

Similar presentations


Presentation on theme: "Datorteknik IntegerAddSub bild 1 Integer arithmetic Depends what you mean by "integer" Assume at 3-bit string. –Then we define zero = 000 one = 001 Use."— Presentation transcript:

1 Datorteknik IntegerAddSub bild 1 Integer arithmetic Depends what you mean by "integer" Assume at 3-bit string. –Then we define zero = 000 one = 001 Use zero, one and binary addition: Zero 000 One Zero + one = one. Makes sense!

2 Datorteknik IntegerAddSub bild 2 Add one repeatedly, use up all possible patterns: Zero Called the Unsigned Integer System No negative integers!

3 Datorteknik IntegerAddSub bild 3 Two additions:

4 Datorteknik IntegerAddSub bild 4 Two additions: Yes! 5 =  001; 001 represents one. is = 1???

5 Datorteknik IntegerAddSub bild 5 Addition of unsigned integers Error detected by presence of "carry"

6 Datorteknik IntegerAddSub bild 6 How do we subtract unsigned integers? We need the concept of the "Two's complement"

7 Datorteknik IntegerAddSub bild 7 One's complement Take any string Invert every bit 0 1 This is One's complement "NOT"

8 Datorteknik IntegerAddSub bild 8 Two's complement Given a string One's complement then add one This is called two's complement

9 Datorteknik IntegerAddSub bild 9 To subtract unsigned A-B Perform A + 2's comp (B) = A + Not (B) + 1

10 Datorteknik IntegerAddSub bild 10 Example: Carry! =2; Good! No Carry! =6; BAD!

11 Datorteknik IntegerAddSub bild 11 Subraction of unsigned integers Error detected by absence of carry! –Warning: Some machines invert the carry bit on subtraction –So that "carry" => Error for both add and sub

12 Datorteknik IntegerAddSub bild 12 Conclusion For unsigned arithmetic we are interested in carry Pay attention! I never used the word "overflow" thats something completely different. Also notice: –3-bit operands gave 3-bit results. –Don't be tempted to write that 4'th bit down!

13 Datorteknik IntegerAddSub bild 13 How about negative numbers? How should we represent -1 ? How would we compute 0 - 1? 0 + 2's compl (1) We choose this as our "-1" 1 = =

14 Datorteknik IntegerAddSub bild 14 Repeatedly add -1: Zero Less than zero No! High order bit called "sign bit"

15 Datorteknik IntegerAddSub bild 15 Signed 3-bit integers Not symmetrical around zero!!!

16 Datorteknik IntegerAddSub bild 16 Sign bit The high order bit in a number Also called "N"-bit Value is negative when this bit is "1"

17 Datorteknik IntegerAddSub bild 17 Let's try A + B (-1) *000 Both results is OK But: Left case: no carry Right case: carry Conclusion: For signed addition carry is worthless Same conclusion for signed subtraction * carry

18 Datorteknik IntegerAddSub bild 18 Some additions A (-3) (-4) (-2)

19 Datorteknik IntegerAddSub bild 19 Some additions B (-3) (-4) C C (-2)

20 Datorteknik IntegerAddSub bild 20 Some additions C OK BAD (-3) (-4) C C OK BAD (-2) OK OK

21 Datorteknik IntegerAddSub bild 21 Some additions D OK BAD (-3) (-4) C C OK BAD (-2) OK OK

22 Datorteknik IntegerAddSub bild 22 Error during signed addition: R = A + B A, B same sign and R opposite sign called overflow Notice: Matematically, signed addition is the same as unsigned addition The same is true for signed subtraction and unsigned subtraction A - B –> A + (-B) –> A + 2's compl (B)

23 Datorteknik IntegerAddSub bild 23 Some subtractions A (-1) (-1)

24 Datorteknik IntegerAddSub bild 24 Some subtractions B (-1) C (-1) C C C 0 1 1

25 Datorteknik IntegerAddSub bild 25 Some subtractions C (-1) C OK BAD (-1) C OK OK C C OK BAD

26 Datorteknik IntegerAddSub bild 26 Some subtractions D (-1) C OK BAD (-1) C OK OK C C OK BAD

27 Datorteknik IntegerAddSub bild 27 Error during signed subtraction: R = A - B A, B different sign and B, R same sign called overflow

28 Datorteknik IntegerAddSub bild 28 Arithmetic- logic unit (ALU) C = carry V = overflow N = sign bit of R Z = 1 if R = 0 32 A B C Operation Condition codes C, V, N, Z

29 Datorteknik IntegerAddSub bild 29 Compare two unsigned numbers? is A < B ? Easy! Compute A - B and examine carry But – to compare two signed numbers? is A < B ? Most common mistake: –Compute R = A - B, then look at sign of R. –If R < 0 then A < B (N-bit) Not good enough!

30 Datorteknik IntegerAddSub bild 30 To compare two signed numbers: What about A = - 4 B = 3 (- 4) c 001 Assumption: “If R neg then A < B” We conclude A  B, that is - 4  3 Wrong!

31 Datorteknik IntegerAddSub bild 31 Some examples A (-1) (-1)

32 Datorteknik IntegerAddSub bild 32 Some examples B (-1) C < +1? No! 3 < -1? No! (-1) C < -1? No! 1 < -1? No! C C < +1? Yes! -4 < 1? Yes!

33 Datorteknik IntegerAddSub bild 33 Some examples C (-1) C < +1? No! 3 < -1? No! N = 0, V = 0 N = 1, V = (-1) C < -1? No! 1 < -1? No! N = 0, V = 0 N = 0, V = C C < +1? Yes! -4 < 1? Yes! N = 1, V = 0 N = 0, V = 1

34 Datorteknik IntegerAddSub bild 34 To compare signed numbers: Compute R = A - B A < B true if N and V are different A { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com/2705731/10/slides/slide_33.jpg", "name": "Datorteknik IntegerAddSub bild 34 To compare signed numbers: Compute R = A - B A < B true if N and V are different A


Download ppt "Datorteknik IntegerAddSub bild 1 Integer arithmetic Depends what you mean by "integer" Assume at 3-bit string. –Then we define zero = 000 one = 001 Use."

Similar presentations


Ads by Google