EE109 Signed Systems and Arithmetic - University of...
-
Upload
phungquynh -
Category
Documents
-
view
238 -
download
3
Transcript of EE109 Signed Systems and Arithmetic - University of...
![Page 1: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/1.jpg)
10.1
Unit 10
Signed Representation Systems
Binary Arithmetic
![Page 2: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/2.jpg)
10.2
BINARY REPRESENTATION SYSTEMS REVIEW
![Page 3: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/3.jpg)
10.3
Interpreting Binary Strings
• Given a string of 1’s and 0’s, you need to know the representation system being used, before you can understand the value of those 1’s and 0’s.
• Information (value) = Bits + Context (System)
01000001 = ?
6510 ‘A’ASCII
41BCD
Unsigned
Binary system ASCII
systemBCD System
![Page 4: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/4.jpg)
10.4
Binary Representation Systems
• Integer Systems– Unsigned
• Unsigned (Normal) binary
– Signed
• Signed Magnitude
• 2’s complement
• Excess-N*
• 1’s complement*
• Floating Point – For very large and small
(fractional) numbers
• Codes– Text
• ASCII / Unicode
– Decimal Codes
• BCD (Binary Coded Decimal) / (8421 Code)
* = Not fully covered in this class
![Page 5: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/5.jpg)
10.5
Review of Number Systems• Number systems consist of
1. A base (radix) r
2. r coefficients [0 to r-1]
• Human System: Decimal (Base 10): 0,1,2,3,4,5,6,7,8,9
• Computer System: Binary (Base 2): 0,1
• Human systems for working with computer systems (shorthand for human to read/write binary)
– Octal (Base 8): 0,1,2,3,4,5,6,7
– Hexadecimal (Base 16): 0-9,A,B,C,D,E,F (A thru F = 10 thru 15)
![Page 6: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/6.jpg)
10.6
Binary Examples
(1001.1)2 = 8 + 1 + 0.5 = 9.510.51248
(10110001)2 = 128 + 32 + 16 + 1 = 177101632128 1
![Page 7: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/7.jpg)
10.7
Unique Combinations
• Given n digits of base r, how many unique numbers can be formed? rn
– What is the range? [0 to rn-1]
Main Point: Given n digits of base r, rn unique numbers can
be made with the range [0 - (rn-1)]
2-digit, decimal numbers (r=10, n=2)
3-digit, decimal numbers (r=10, n=3)
4-bit, binary numbers (r=2, n=4)
6-bit, binary numbers
(r=2, n=6)
0-90-9
100 combinations:
00-99
0-10-10-10-1
1000 combinations:
000-999
16 combinations:
0000-1111
64 combinations:
000000-111111
![Page 8: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/8.jpg)
10.8
Approximating Large Powers of 2
• Often need to find decimal approximation of a large powers of 2 like 216, 232, etc.
• Use following approximations:– 210 ≈ 103 (1 thousand) = 1 Kilo-
– 220 ≈ 106 (1 million) = 1 Mega-
– 230 ≈ 109 (1 billion) = 1 Giga-
– 240 ≈ 1012 (1 trillion) = 1 Tera-
• For other powers of 2, decompose into product of 210 or 220 or 230 and a power of 2 that is less than 210
– 16-bit half word: 64K numbers
– 32-bit word: 4G numbers
– 64-bit dword: 16 million trillion numbers
216 = 26 * 210
≈ 64 * 103 = 64,000
224 = 24 * 220
≈ 16 * 106 = 16,000,000
228 = 28 * 220
≈ 256 * 106 = 256,000,000
232 = 22 * 230
≈ 4 * 109 = 4,000,000,000
![Page 9: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/9.jpg)
10.9
Decimal to Unsigned Binary
• To convert a decimal number, x, to binary:
– Only coefficients of 1 or 0. So simply find place values that add up to the desired values, starting with larger place values and proceeding to smaller values and place a 1 in those place values and 0 in all others
16 8 4 2 1
2510 = 1 1 1
32
For 2510 the place value 32 is too large to include so we include
16. Including 16 means we have to make 9 left over. Include 8
and 1.
0 00
![Page 10: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/10.jpg)
10.10
Decimal to Another Base
• To convert a decimal number, x, to base r:
– Use the place values of base r (powers of r). Starting with largest place values, fill in coefficients that sum up to desired decimal value without going over.
16 1
7510 = 4 B
256
0 hex
![Page 11: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/11.jpg)
10.11
SIGNED SYSTEMS
Signed Magnitude
2’s Complement System
![Page 12: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/12.jpg)
10.12
Binary Representation Systems
• Integer Systems– Unsigned
• Unsigned (Normal) binary
– Signed
• Signed Magnitude
• 2’s complement
• 1’s complement*
• Excess-N*
• Floating Point – For very large and small
(fractional) numbers
• Codes– Text
• ASCII / Unicode
– Decimal Codes
• BCD (Binary Coded Decimal) / (8421 Code)
* = Not covered in this class
![Page 13: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/13.jpg)
10.13
Unsigned and Signed
• Normal (unsigned) binary can only represent positive numbers
– All place values are positive
• To represent negative numbers we must use a modified binary representation that takes into account sign (pos. or neg.)
– We call these signed representations
![Page 14: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/14.jpg)
10.14
Signed Number Representation
• 2 Primary Systems
– Signed Magnitude
– Two’s Complement (most widely used for integer representation)
![Page 15: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/15.jpg)
10.15
Signed numbers
• All systems used to represent negative numbers split the possible binary combinations in half (half for positive numbers / half for negative numbers)
• In both signed magnitude and 2’s complement, positive and negative numbers are separated using the MSB
– MSB=1 means negative
– MSB=0 means positive
00000001
0010
0011
0100
0101
0110
0111
1000
1111
1110
1101
1100
1011
1010
1001
+-
![Page 16: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/16.jpg)
10.16
Signed Magnitude System
• Use binary place values but now MSB represents the sign (1 if negative, 0 if positive)
1248
4-bit
Unsigned
4-bit Signed
Magnitude
0 to 15
Bit
0
Bit
1
Bit
2
Bit
3
124+/-
-7 to +7
Bit
0
Bit
1
Bit
2
Bit
3
8-bit Signed
Magnitude163264+/-
-127 to +127
Bit
4
Bit
5
Bit
6
Bit
7
1248
Bit
0
Bit
1
Bit
2
Bit
3
![Page 17: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/17.jpg)
10.17
Signed Magnitude Examples
4-bit Signed
Magnitude
124+/-
= -5
8-bit Signed
Magnitude
1011
124+/-
= +31100
163264+/- 1248
Notice that +3 in signed
magnitude is the same
as in the unsigned
system
124+/-
= -71111
1001 1100 = -19
163264+/- 1248
1000 1001 = +25
Important: Positive numbers have the same representation in signed
magnitude as in normal unsigned binary
![Page 18: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/18.jpg)
10.18
Signed Magnitude Range
• Given n bits…
– MSB is sign
– Other n-1 bits = normal unsigned place values
• Range with n-1 unsigned bits = [0 to 2n-1-1]
Range with n-bits of Signed Magnitude
[ -2n-1 –1 to +2n-1–1]
![Page 19: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/19.jpg)
10.19
Disadvantages of Signed Magnitude
1. Wastes a combination to represent -0
0000 = 1000 = 010
2. Addition and subtraction algorithms for signed magnitude are different than unsigned binary (we’d like them to be the same to use same HW)
4
- 6Swap &
make res.
negative
6
- 4
-
![Page 20: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/20.jpg)
10.20
2’s Complement System
• Normal binary place values except MSB has negative weight– MSB of 1 = -2n-1
1248
4-bit
Unsigned
4-bit
2’s complement
0 to 15
Bit
0
Bit
1
Bit
2
Bit
3
124-8
-8 to +7
Bit
0
Bit
1
Bit
2
Bit
3
8-bit
2’s complement163264-128
-128 to +127
Bit
4
Bit
5
Bit
6
Bit
7
1248
Bit
0
Bit
1
Bit
2
Bit
3
![Page 21: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/21.jpg)
10.21
2’s Complement Examples
4-bit
2’s complement
124-8
= -5
8-bit
2’s complement
1101
124-8
= +31100
163264-128 1248
Notice that +3 in 2’s
comp. is the same as
in the unsigned system
124-8
= -11111
0001 1000 = -127
163264-128 1248
1000 1001 = +25
Important: Positive numbers have the same representation in 2’s complement
as in normal unsigned binary
![Page 22: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/22.jpg)
10.22
2’s Complement Range
• Given n bits…
– Max positive value = 011…11
• Includes all n-1 positive place values
– Max negative value = 100…00
• Includes only the negative MSB place value
Range with n-bits of 2’s complement
[ -2n-1 to +2n-1–1]
– Side note – What decimal value is 111…11?
• -110
![Page 23: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/23.jpg)
10.23
Comparison of Systems
0000
0001
0010
0011
0100
0101
0110
0111
1000
1111
1110
1101
1100
1011
1010
1001
0 +1
+2
+3
+4
+5
+6+7-0
-1
-2
-3
-4
-5
-6-7 Signed
Mag.
2’s comp.
0 +1+2
+3
+4
+5+6
+7-8
-7-6
-5
-4
-3
-2-1
![Page 24: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/24.jpg)
10.24
Unsigned and Signed Variables
• In C, unsigned variables use unsigned binary (normal power-of-2 place values) to represent numbers
• In C, signed variables use the 2’s complement system (Neg. MSB weight) to represent numbers
128 64 32 16 8 4 2 1
1 0 0 1 0 0 1 1 = +147
-128 64 32 16 8 4 2 1
1 0 0 1 0 0 1 1 = -109
![Page 25: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/25.jpg)
10.25
IMPORTANT NOTE
• All computer systems use the 2's complement system to represent signed integers!
• So from now on, if we say an integer is signed, we are actually saying it uses the 2's complement system unless otherwise specified
– We will not use "signed magnitude" unless explicitly indicated
![Page 26: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/26.jpg)
10.26
Zero and Sign Extension
2’s complement = Sign Extension (Replicate sign bit):
Unsigned = Zero Extension (Always add leading 0’s):
111011 = 00111011
011010 = 00011010
110011 = 11110011
pos.
neg.
Increase a 6-bit number to 8-bit
number by zero extending
Sign bit is just repeated as
many times as necessary
• Extension is the process of increasing the number of bits used to represent a number without changing its value
![Page 27: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/27.jpg)
10.27
Zero and Sign Truncation
• Truncation is the process of decreasing the number of bits used to represent a number without changing its value
2’s complement = Sign Truncation (Remove copies of sign bit):
Unsigned = Zero Truncation (Remove leading 0’s):
00111011 = 111011
00011010 = 011010
11110011 = 10011
pos.
neg.
Decrease an 8-bit number to 6-bit
number by truncating 0’s. Can’t
remove a ‘1’ because value is changed
Any copies of the MSB can be
removed without changing the
numbers value. Be careful not to
change the sign by cutting off
ALL the sign bits.
![Page 28: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/28.jpg)
10.28
Data Representation
• In C/C++ variables can be of different types and sizes
– Integer Types (signed and unsigned)
– Floating Point Types
C Type Bytes Bits ATmega328
[unsigned] char 1 8 byte
[unsigned] short [int] 2 16 word
[unsigned] long [int] 4 32 -1
[unsigned] long long [int] 8 64 -1
C Type Bytes Bits ATmega328
float 4 32 N/A1
double 8 64 N/A1
1Can emulate but has no single-instruction support
![Page 29: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/29.jpg)
10.29
ARITHMETIC
![Page 30: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/30.jpg)
10.30
Binary Arithmetic
• Can perform all arithmetic operations (+,-,*,÷) on binary numbers
• Can use same methods as in decimal
– Still use carries and borrows, etc.
– Only now we carry when sum is 2 or more rather than 10 or more (decimal)
– We borrow 2’s not 10’s from other columns
• Easiest method is to add bits in your head in decimal (1+1 = 2) then convert the answer to binary (210 = 102)
![Page 31: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/31.jpg)
10.31
Binary Addition
• In decimal addition we carry when the sum is 10 or more
• In binary addition we carry when the sum is 2 or more
• Add bits in binary to produce a sum bit and a carry bit
0
+ 0
00
no need
to carry
sum bit
0
+ 1
01
no need
to carry
sum bit
1
+ 0
01
no need
to carry
sum bit
1
+ 1
10
carry 1
into next
column
of bits
sum bit
1
![Page 32: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/32.jpg)
10.32
Binary Addition & Subtraction
(10)
(5)
(5)
0 1 1 1
+ 0 0 1 1
1 0 1 0
(7)
(3)
(10)
1 1 1
8 4 2 1
1 0 1 0
- 0 1 0 1
0 1 0 1
0 0
8 4 2 1
11
![Page 33: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/33.jpg)
10.33
Binary Addition
0110
+ 0111
1101
(6)
(7)
(13)
110
8 4 2 1
![Page 34: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/34.jpg)
10.34
Binary Addition
0110
+ 0111
1101
(6)
(7)
(13)
0
+ 1
01
0
carry bit sum bit
0110
+ 0111
1101
(6)
(7)
(13)
1
+ 1
10
10 0
carry bit sum bit
0110
+ 0111
1101
(6)
(7)
(13)
1
+ 1
11
110 1
carry bit sum bit
0110
+ 0111
1101
(6)
(7)
(13)
0
+ 0
01
110 1
carry bit sum bit
1 2
43
![Page 35: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/35.jpg)
10.35
Hexadecimal Arithmetic
• Same style of operations
– Carry when sum is 16 or more, etc.
4 D16
+ B 516
1 0 216
1 113+5 = 1810 = 1 216
1+4+11 = 1610 = 1 016
16 1
16 1
![Page 36: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/36.jpg)
10.36
SUBTRACTION THE EASY WAY"Taking the 2's complement"
![Page 37: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/37.jpg)
10.37
Taking the Negative
• Given a number in signed magnitude or 2’s complement how do we find its negative(i.e. -1 * X)
– Signed Magnitude: Flip the sign bit• 0110 = +6 => 1110 = -6
– 2’s complement: “Take the 2’s complement”• 0110 = +6 => -6 = 1010
• Operation defined as:
1. Flip/invert/not all the bits (1’s complement)
2. Add 1 and drop any carry (i.e. finish with the same # of bits as we start with)
![Page 38: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/38.jpg)
10.38
Taking the 2’s Complement
• Invert (flip) each bit (take the 1’s complement)
– 1’s become 0’s
– 0’s become 1’s
• Add 1 (drop final carry-out, if any)
010011
101100Bit flip is called the 1’s
complement of a number
+ 1
101101
Original number = +19-32 16 8 4 2 1
Resulting number = -19
Important: Taking the 2’s complement is equivalent to
taking the negative (negating)
![Page 39: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/39.jpg)
10.39
Taking the 2’s Complement
101010
010101
+ 1
010110
Original number = -22-32 16 8 4 2 1
Resulting number = +22
Take the 2’s complement
yields the negative of a
number
Taking the 2’s complement
again yields the original
number (the operation is
symmetric)
101001
+ 1
101010 Back to original = -22
0000
1111
+ 1
0000
1000
0111
+ 1
1000
Original # = 0
2’s comp. of 0 is 0
Original # = -8
Negative of -8 is -8
(i.e. no positive
equivalent, but this is
not a huge problem)
Take the
2’s complement
Take the
2’s complement
1 2
3
![Page 40: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/40.jpg)
10.40
2’s Complement System Facts• Normal binary place values but MSB has negative weight
• MSB determines sign of the number– 0 = positive / 1 = negative
• Special Numbers– 0 = All 0’s (00…00)
– -1 = All 1’s (11…11)
– Max Positive = 0 followed by all 1’s (011..11)
– Max Negative = 1 followed by all 0’s (100…00)
• To take the negative of a number (e.g. -7 => +7 or +2 => -2), requires taking the complement– 2’s complement of a # is found by flipping bits and adding 1
1001
0110
+ 10111
x = -7
Bit flip (1’s comp.)
Add 1
-x = -(-7) = +7
![Page 41: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/41.jpg)
10.41
ADDITION AND SUBTRACTION
![Page 42: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/42.jpg)
10.42
2’s Complement Addition/Subtraction
• Addition– Sign of the numbers do not matter
– Add column by column
– Drop any final carry-out
• Subtraction– Any subtraction (A-B) can be converted to
addition (A + -B) by taking the 2’s complement of B
– (A-B) becomes (A + 1’s comp. of B + 1)
– Drop any carry-out
![Page 43: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/43.jpg)
10.43
2’s Complement Addition
• No matter the sign of the operands just add as normal
• Drop any extra carry out
0011
+ 0010
0101
(3)
(2)
(5)
1101
+ 0010
1111
(-3)
(2)
(-1)
0011
+ 1110
0001
(3)
(-2)
(1)
1101
+ 1110
1011
(-3)
(-2)
(-5)
0000 0000
1110 Drop final
carry-out 1100
![Page 44: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/44.jpg)
10.44
Unsigned and Signed Addition
• Addition process is the same for both unsigned and signed numbers– Add columns right to left
• Examples:
1001
+ 0011
1100
11
(9)
(3)
(12)
(-7)
(3)
(-4)
If unsigned If signed
![Page 45: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/45.jpg)
10.45
2’s Complement Subtraction• Take the 2’s complement of the subtrahend and add
to the original minuend• Drop any extra carry out
0011
- 0010
(+3)
(+2)
Drop final
carry-out
1111_
0011
1101
+ 1
0001
1’s comp. of +2
Add 1
1101
- 1110
(-3)
(-2)
1_
1101
0001
+ 1
1111
1’s comp. of -2
Add 1
![Page 46: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/46.jpg)
10.46
Unsigned and Signed Subtraction
• Subtraction process is the same for both unsigned and signed numbers– Convert A – B to A + Comp. of B
– Drop any final carry out
• Examples:
(12)
(2)
(-4)
(2)
If unsigned If signed
1100
- 0010
11_1_
1100
1101
+ 1
1010
1’s comp. of B
Add 1
A
If unsigned If signed
(10) (-6)
![Page 47: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/47.jpg)
10.47
Important Note
• Almost all computers use 2's complement because…
• The same addition and subtraction algorithm can be used on unsigned and 2's complement (signed) numbers
• Thus we only need one adder circuit (HW component) to perform operations on both unsigned and signed numbers
![Page 48: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/48.jpg)
10.48
OVERFLOW
![Page 49: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/49.jpg)
10.49
Overflow
• Overflow occurs when the result of an arithmetic operation is too large to be represented with the given number of bits
• Conditions and tests to determine overflow depend on sign
![Page 50: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/50.jpg)
10.50
Unsigned Overflow
00000001
0010
0011
0100
0101
0110
0111
1000
1111
1110
1101
1100
1011
1010
1001
0
+1
+2
+3
+4
+5
+6
+7
+8+9
+10
+11
+12
+13
+14
+15
Overflow occurs when you cross
this discontinuity
10
Plus 7
10 + 7 = 17
With 4-bit unsigned numbers we
can only represent 0 – 15. Thus,
we say overflow has occurred.
![Page 51: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/51.jpg)
10.51
2’s Complement Overflow
00000001
0010
0011
0100
0101
0110
0111
1000
1111
1110
1101
1100
1011
1010
1001
0
+1
+2
+3
+4
+5
+6
+7
-8-7
-6
-5
-4
-3
-2
-1
Overflow occurs when you cross this
discontinuity
-6 + -4 = -10
With 4-bit 2’s complement
numbers we can only represent
-8 to +7. Thus, we say overflow
has occurred.
5 + 7 = +12
![Page 52: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/52.jpg)
10.52
Overflow in Addition
• Overflow occurs when the result of the addition cannot be represented with the given number of bits.
• Tests for overflow:– Unsigned: if Cout = 1
– Signed: if p + p = n or n + n = p
1101
+ 0100
0001
11
(13)
(4)
(17)
(-3)
(4)
(+1)
If unsigned If signed
Overflow
Cout = 1
No Overflow
n + p
0110
+ 0101
1011
10
(6)
(5)
(11)
(6)
(5)
(-5)
If unsigned If signed
No Overflow
Cout = 0
Overflow
p + p = n
![Page 53: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/53.jpg)
10.53
Overflow in Subtraction
• Overflow occurs when the result of the subtraction cannot be represented with the given number of bits.
• Tests for overflow:– Unsigned: if Cout = 0
– Signed: if addition is p + p = n or n + n = p
(7)
(8)
(-1)
(7)
(-8)
(15)
If unsigned If signed
0111
- 1000
0111_
0111
0111
+ 1
1111
1’s comp. of B
Add 1
A
If unsigned
Overflow
Cout = 0
If signed
Overflow
p + p = n
(15) (-1)Desired
Results
![Page 54: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/54.jpg)
10.54
FLOATING POINT
![Page 55: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/55.jpg)
10.55
Floating Point
• Used to represent very small numbers (fractions) and very large numbers– Avogadro’s Number: +6.0247 * 1023
– Planck’s Constant: +6.6254 * 10-27
– Note: 32 or 64-bit integers can’t represent this range
• Floating Point representation is used in HLL’s like C by declaring variables as float or double
![Page 56: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/56.jpg)
10.56
Fixed Point
• Unsigned and 2’s complement fall under a category of representations called “Fixed Point”
• The radix point is assumed to be in a fixed location for all numbers [Note: we could represent fractions by implicitly assuming the binary point is at the left…A variable just stores bits…you can assume the binary point is anywhere you like]
– Integers: 10011101. (binary point to right of LSB)
• For 32-bits, unsigned range is 0 to ~4 billion
– Fractions: .10011101 (binary point to left of MSB)
• Range [0 to 1)
• Main point: By fixing the radix point, we limit the range of numbers that can be represented– Floating point allows the radix point to be in a different location for each
value
Bit storage
Fixed point Rep.
![Page 57: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/57.jpg)
10.57
Floating Point Representation
• Similar to scientific notation used with decimal numbers
– ±D.DDD * 10 ±exp
• Floating Point representation uses the following form
– ±b.bbbb * 2±exp
– 3 Fields: sign, exponent, fraction (also called mantissa or significand)
S Exp. fractionOverall Sign of #
![Page 58: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/58.jpg)
10.58
Normalized FP Numbers
• Decimal Example– +0.754*1015 is not correct scientific notation
– Must have exactly one significant digit before decimal point: +7.54*1014
• In binary the only significant digit is ‘1’
• Thus normalized FP format is:±1.bbbbbb * 2±exp
• FP numbers will always be normalized before being stored in memory or a reg.– The 1. is actually not stored but assumed since we always will store
normalized numbers
– If HW calculates a result of 0.001101*25 it must normalize to 1.101000*22 before storing
![Page 59: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/59.jpg)
10.59
IEEE Floating Point Formats
• Single Precision (32-bit format)
– 1 Sign bit (0=pos/1=neg)
– 8 Exponent bits • Excess-127 representation
• More on next slides
– 23 fraction (significand or mantissa) bits
– Equiv. Decimal Range: • 7 digits x 10±38
• Double Precision (64-bit format)
– 1 Sign bit (0=pos/1=neg)
– 11 Exponent bits • Excess-1023 representation
• More on next slides
– 52 fraction (significand or mantissa) bits
– Equiv. Decimal Range: • 16 digits x 10±308
S FractionExp.
1 8 23
S FractionExp.
1 11 52
![Page 60: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/60.jpg)
10.60
Floating Point vs. Fixed Point
• Single Precision (32-bits) Equivalent Decimal Range:
– 7 significant decimal digits * 10±38
– Compare that to 32-bit signed integer where we can represent ±2 billion. How does a 32-bit float allow us to represent such a greater range?
– FP allows for range but sacrifices precision (can’t represent all numbers in its range)
• Double Precision (64-bits) Equivalent Decimal Range:
• 16 significant decimal digits * 10±308
![Page 61: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/61.jpg)
10.61
Exponent Representation
• Exponent needs its own sign (+/-)
• Rather than using 2’s comp. system we use Excess-N representation– Single-Precision uses Excess-127
– Double-Precision uses Excess-1023
– This representation allows FP numbers to be easily compared
• Let E’ = stored exponent code and E = true exponent value
• For single-precision: E’ = E + 127– 21 => E = 1, E’ = 12810 = 100000002
• For double-precision: E’ = E + 1023– 2-2 => E = -2, E’ = 102110 = 011111111012
2’s comp.
E'(stored Exp.)
Excess-127
-1 1111 1111 +128
-2 1111 1110 +127
-128 1000 0000 1
+127 0111 1111 0
+126 0111 1110 -1
+1 0000 0001 -126
0 0000 0000 -127
Comparison of
2’s comp. & Excess-N
Q: Why don’t we use Excess-N
more to represent negative #’s
![Page 62: EE109 Signed Systems and Arithmetic - University of ...bytes.usc.edu/files/ee109/slides/EE109Unit10_Signed...10.4 Binary Representation Systems • Integer Systems – Unsigned •](https://reader035.fdocuments.in/reader035/viewer/2022081801/5acf00f27f8b9a6c6c8c910e/html5/thumbnails/62.jpg)
10.62
Single-Precision Examples
1 1000 0010 110 0110 0000 0000 0000 0000
-1.1100110 * 23
130-127=3
-1110.011 * 20=
-14.375=
+0.6875 = +0.1011
= +1.011 * 2-1
0 0111 1110 011 0000 0000 0000 0000 0000
-1 +127 = 126
1
2
27=128 21=2