Download presentation
Presentation is loading. Please wait.
Published byMollie Kennard Modified over 10 years ago
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 + 001 001 Zero + one = one. Makes sense!
2
Datorteknik IntegerAddSub bild 2 Add one repeatedly, use up all possible patterns: Zero 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 Called the Unsigned Integer System No negative integers!
3
Datorteknik IntegerAddSub bild 3 Two additions: 2 010 + 3 + 011 5 4 100 + 5 + 101 9
4
Datorteknik IntegerAddSub bild 4 Two additions: 2 010 + 3 + 011 5 101 Yes! 5 = 101 4 100 + 5 + 101 9 001 9 001; 001 represents one. is 4 + 5 = 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: 5 101 101 - 3 - 011 + 100 2 + 1 010 3 011 011 - 5 - 101 + 010 - 2 + 1 110 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 = 001 - 1 = 110 + 1 111
14
Datorteknik IntegerAddSub bild 14 Repeatedly add -1: Zero000 - 1 111 - 2 110Less than - 3 101zero - 4 110 - 5 011No! High order bit called "sign bit"
15
Datorteknik IntegerAddSub bild 15 Signed 3-bit integers 3011 2010 1001 0000 -1111 -2110 -3101 -4100 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 10011001 +2010 +(-1)111 30110 *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 1 0 0 120 1 0 +2 0 1 0 + 20 1 0 3 4 -1 1 1 1 -11 1 1 +(-3) 1 0 1 +(-4)1 0 0 -4 -5 1 0 0 1 -21 1 0 +(-2) 1 1 0 +10 0 1 -1 -1
19
Datorteknik IntegerAddSub bild 19 Some additions B 1 0 0 120 1 0 +2 0 1 0 + 20 1 0 3 0 1 1 4 1 0 0 -1 1 1 1 -11 1 1 +(-3) 1 0 1 +(-4)1 0 0 -4 C 1 0 0 -5 C 0 1 1 1 0 0 1 -21 1 0 +(-2) 1 1 0 +10 0 1 -1 1 1 1 -11 1 1
20
Datorteknik IntegerAddSub bild 20 Some additions C 1 0 0 120 1 0 +2 0 1 0 + 20 1 0 3 0 1 1 4 1 0 0 3 -4 OK BAD -1 1 1 1 -11 1 1 +(-3) 1 0 1 +(-4)1 0 0 -4 C 1 0 0 -5 C 0 1 1 -4 3 OK BAD 1 0 0 1 -21 1 0 +(-2) 1 1 0 +10 0 1 -1 1 1 1 -11 1 1 -1 -1 OK OK
21
Datorteknik IntegerAddSub bild 21 Some additions D 1 0 0 120 1 0 +2 0 1 0 + 20 1 0 3 0 1 1 4 1 0 0 3 -4 OK BAD -1 1 1 1 -11 1 1 +(-3) 1 0 1 +(-4)1 0 0 -4 C 1 0 0 -5 C 0 1 1 -4 3 OK BAD 1 0 0 1 -21 1 0 +(-2) 1 1 0 +10 0 1 -1 1 1 1 -11 1 1 -1 -1 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 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 4 -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 2 - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 - 5
24
Datorteknik IntegerAddSub bild 24 Some subtractions B 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 C 0 1 0 4 1 0 0 -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 C 0 0 0 2 0 1 0 - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 C 1 0 0 - 5 C 0 1 1
25
Datorteknik IntegerAddSub bild 25 Some subtractions C 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 C 0 1 0 4 1 0 0 2 -4 OK BAD -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 C 0 0 0 2 0 1 0 0 2 OK OK - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 C 1 0 0 - 5 C 0 1 1 -4 3 OK BAD
26
Datorteknik IntegerAddSub bild 26 Some subtractions D 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 C 0 1 0 4 1 0 0 2 -4 OK BAD -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 C 0 0 0 2 0 1 0 0 2 OK OK - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 C 1 0 0 - 5 C 0 1 1 -4 3 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) 100 - 3 + 101 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 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 -1 1 1 1 10 0 1 - (-1) + 0 0 1 - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1
32
Datorteknik IntegerAddSub bild 32 Some examples B 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 C 0 1 0 4 1 0 0 3 < +1? No! 3 < -1? No! -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 C 0 0 0 2 0 1 0 -1 < -1? No! 1 < -1? No! - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 C 1 0 0 - 5 C 0 1 1 -3 < +1? Yes! -4 < 1? Yes!
33
Datorteknik IntegerAddSub bild 33 Some examples C 3 0 1 130 1 1 - 1 + 1 1 1 -(-1) + 0 0 1 2 C 0 1 0 4 1 0 0 3 < +1? No! 3 < -1? No! N = 0, V = 0 N = 1, V = 1 -1 1 1 1 10 0 1 - (-1) + 0 0 1 0 C 0 0 0 2 0 1 0 -1 < -1? No! 1 < -1? No! N = 0, V = 0 N = 0, V = 0 - 3 1 0 1 - 4 1 0 0 - 1 + 1 1 1 - 1 + 1 1 1 -4 C 1 0 0 - 5 C 0 1 1 -3 < +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<B = exor(N,V) after computation
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.