Module 6 Dldca
Module 6 Dldca
Module 6 Dldca
Arithmetic Algorithms
Module 6
Arithmetic & Logic Unit
Does the calculations
Everything else in the computer is there to service this
unit
Handles integers
May handle floating point (real) numbers
May be separate FPU (maths co-processor)
May be on chip separate FPU
ALU Inputs and Outputs
Integer Representation
Only have 0 & 1 to represent everything
Positive numbers stored in binary
e.g. 41=00101001
No minus sign
No period
Sign-Magnitude
Two’s complement
Sign-Magnitude
Left most bit is sign bit
0 means positive
1 means negative
+18 = 00010010
-18 = 10010010
Problems
Need to consider both sign and magnitude in arithmetic
Two representations of zero (+0 and -0)
Two’s Complement
+3 = 00000011
+2 = 00000010
+1 = 00000001
+0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101
Benefits
One representation of zero
Arithmetic works easily
Negating is fairly easy
3 = 00000011
Boolean complement gives 11111100
Add 1 to LSB 11111101
Negation Special Case 1
0= 00000000
Bitwise not 11111111
Add 1 to LSB +1
Result 1 00000000
Overflow is ignored, so:
-0=0
Negation Special Case 2
-128 = 10000000
bitwise not 01111111
Add 1 to LSB +1
Result 10000000
So:
-(-128) = -128 X
Monitor MSB (sign bit)
It should change during negation
Range of Numbers
8 bit 2s complement
+127 = 01111111 = 27 -1
-128 = 10000000 = -27
16 bit 2s complement
+32767 = 011111111 11111111 = 215 - 1
-32768 = 100000000 00000000 = -215
Addition and Subtraction
Normal binary addition
Monitor sign bit for overflow
00001101 Quotient