Computer Arithmetic Algorithms Prof. Dae Hyun Kim School of Electrical Engineering and Computer Science Washington State University Number Representations
Computer Arithmetic Algorithms
Prof. Dae Hyun Kim School of Electrical Engineering and Computer Science
Washington State University
Number Representations
2
Information
β’ Textbook β Israel Koren, βComputer Arithmetic Algorithms,β Prentice Hall, 1993.
3
Outline
β’ Binary number system
β’ Radix conversion
β’ Negative numbers β Signed-magnitude β Oneβs complement β Twoβs complement
β’ Addition and subtraction
β’ Arithmetic shift operations (sign extension)
4
The Binary Number System
β’ A binary number of length ππ (π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0)
β π₯π₯ππ: bit (β {0,1})
β’ An ππ-digit binary number
ππ = π₯π₯ππβ12ππβ1 + π₯π₯ππβ22ππβ2 + β―+ π₯π₯121 + π₯π₯020 = οΏ½π₯π₯ππ2ππππβ1
ππ=0
β π₯π₯ππ β {0,1}
β’ Example β 10112 = 1 β 23 + 0 β 22 + 1 β 21 + 1 β 20 = 11
radix
5
The Binary Number System
β’ Radix-10 numbers: decimal numbers β (101)10= 101
β’ Radix-2 numbers: binary numbers
β (101)2= 5
β’ Range of representable numbers [ππππππππ,ππππππππ]
β Example: The range of 4-bit unsigned binary numbers: [0, 15]
β’ Overflow β An arithmetic operation resulting in a number larger than ππππππππ or
smaller than ππππππππ
6
The Binary Number System
β’ The conventional number systems β Nonredundant
β’ Every number has a unique representation. β Weighted
β’ ππ = β π₯π₯πππ€π€ππππβ1ππ=0
β’ π€π€ππ: weight β Positional
β’ π€π€ππ depends only on the position of the digit π₯π₯ππ. β’ π€π€ππ = ππππ β’ 0 β€ π₯π₯ππ β€ ππ β 1
β Otherwise (if π₯π₯ππ β₯ ππ), the system becomes redundant.
X D
π₯π₯ππ
π₯π₯ππ ππππ
redundant
7
The Binary Number System
β’ A mixed number (fixed-point representation) (π₯π₯ππβ1 π₯π₯ππβ2 β¦ π₯π₯1 π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)ππ
= (π₯π₯ππβ1ππππβ1 + π₯π₯ππβ2ππππβ2 + β―+ π₯π₯1ππ1 + π₯π₯0ππ0) + (π₯π₯β1ππβ1 + β―+ π₯π₯βππππβππ)
= οΏ½ π₯π₯ππππππππβ1
ππ=βππ
β’ ππβππ: indicates the position of the radix point.
β’ ulp: unit in the last position
β π’π’π’π’π’π’ = ππβππ
integral part fractional part
8
Radix Conversion
β’ Given β ππ = πππΌπΌ + πππΉπΉ = β π₯π₯ππππππππβ1
ππ=0 + β π₯π₯ππππππβ1ππ=βππ
β’ πππΌπΌ: integral part β’ πππΉπΉ: fractional part
β πππ·π·: destination number system
β’ Integral part πππΌπΌ = π₯π₯0 + πππ·π·(π₯π₯1 + πππ·π·(π₯π₯2 + β―+ πππ·π·(π₯π₯ππβ2 + πππ·π·π₯π₯ππβ1)))
0 β€ π₯π₯ππ < πππ·π· β π₯π₯0 = πππΌπΌ ππππππ πππ·π· β ππ0 = π₯π₯1 + πππ·π· π₯π₯2 + πππ·π· π₯π₯3 + β― β π₯π₯1 = ππ0 ππππππ πππ·π· β ...
9
Radix Conversion
β’ Fractional part πππΉπΉ = πππ·π·β1(π₯π₯β1 + πππ·π·β1(π₯π₯β2 + β―+ πππ·π·β1(π₯π₯β ππβ1 + πππ·π·β1π₯π₯βππ)))
0 β€ π₯π₯ππ < πππ·π·
β π₯π₯β1: the integral part of πππΉπΉπππ·π· β ππβ1 = πππ·π·β1(π₯π₯β2 + β―+ πππ·π·β1(π₯π₯β ππβ1 + πππ·π·β1π₯π₯βππ)) β π₯π₯β2: the integral part of ππβ1πππ·π· β ...
β’ Example
β 46.37510 = 101110.0112
10
Negative Numbers: Signed-Magnitude
β’ Representation (π₯π₯π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0)
β’ Positive numbers: 0xxxxx β 0xxxxx2
β’ Negative numbers: (r-1)xxxxx β 1xxxxx2
β’ Range of positive numbers for (π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)
β [0, ππππβ1 β π’π’π’π’π’π’] β’ Range of negative numbers for (π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)
β [β(ππππβ1 β π’π’π’π’π’π’), 0]
sign magnitude
11
Negative Numbers: Signed-Magnitude
β’ Problems β Two zeros
β’ 0000...0 β’ 1000...0
β Difficulties in subtraction β’ If X>Y, X-Y is ok. β’ However, Y-X is -(X-Y), so we should compute X-Y, then set the MSB to 1.
12
Negative Numbers: Complement
β’ Represent βY by R β Y. β’ Then, β(βY) = R β (R β Y) = Y. β’ If X>Y>0, Y β X = Y + (R β X) = R β (X β Y) = X β Y.
β’ Two requirements
β When X>Y>0, X β Y = X + (R β Y) = R + (X β Y) should be X β Y. β Computation of R β Y should be simple.
β’ Notation
π₯π₯πποΏ½ = ππ β 1 β π₯π₯ππ πποΏ½ = (π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯0, π₯π₯β1, β¦ , π₯π₯βππ) ππ + πποΏ½ = ( ππ β 1 , ππ β 1 , β¦ , (ππ β 1))
ππ + πποΏ½ + π’π’π’π’π’π’ = ππππ
13
Negative Numbers: Complement
β’ Oneβs complement (Diminished-radix complement) β π π = ππππ β π’π’π’π’π’π’ β βππ = π π β ππ = πποΏ½ β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π β ππ β ππ = β(ππ β ππ) β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π + ππ β ππ = ππππ + ππ β ππ β π’π’π’π’π’π’ =
ππ β ππ β π’π’π’π’π’π’ β’ This requires a correction step (add ulp).
β When X>0, Y>0, βππ β ππ = π π β ππ + π π β ππ = π π + π π β ππ + ππ = ππππ + π π βππ + ππ = π π β ππ + ππ = β(ππ + ππ)
β’ Twoβs complement (Radix complement)
β π π = ππππ β βππ = π π β ππ = πποΏ½ + π’π’π’π’π’π’ β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π β ππ β ππ = β(ππ β ππ) β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π + ππ β ππ = ππππ + ππ β ππ = ππ β ππ β When X>0, Y>0, βππ β ππ = π π β ππ + π π β ππ = π π + π π β ππ + ππ = ππππ + π π β
ππ + ππ = π π β ππ + ππ = β(ππ + ππ)
14
Twoβs Complement Representation
β’ One zero β 000...0
β’ A negative number that does not have a positive equivalent β 100...0
β’ Range β [β2ππβ1, 2ππβ1 β π’π’π’π’π’π’]
β’ ππ = βπ₯π₯ππβ1 β 2ππβ1 + β π₯π₯ππ2ππππβ2
ππ=0 Proof) If π₯π₯ππβ1 = 0 (positive), ππ = β π₯π₯ππ2ππππβ2
ππ=0 = βπ₯π₯ππβ1 β 2ππβ1 + β π₯π₯ππ2ππππβ2ππ=0 .
If π₯π₯ππβ1 = 1 (negative), ππ = β πποΏ½ + π’π’π’π’π’π’ = β[β π₯π₯πποΏ½2ππππβ1ππ=0 + 1]
= β β 1 β π₯π₯ππ 2ππππβ1ππ=0 + 1 = β 2ππ β 1 β β π₯π₯ππ2ππππβ1
ππ=0 + 1 = β2ππ + β π₯π₯ππ2ππππβ1
ππ=0 = β2ππβ1 + β π₯π₯ππ2ππππβ2ππ=0
15
Oneβs Complement Representation
β’ Two zeros β 000...0 β 111...1
β’ Range
β [β 2ππβ1 β π’π’π’π’π’π’ , 2ππβ1 β π’π’π’π’π’π’ ]
β’ ππ = βπ₯π₯ππβ1 2ππβ1 β π’π’π’π’π’π’ + β π₯π₯ππ2ππππβ2ππ=0
Proof) If π₯π₯ππβ1 = 0 (positive), ππ = β π₯π₯ππ2ππππβ2ππ=0 = βπ₯π₯ππβ1 β (2ππβ1 β π’π’π’π’π’π’) +
β π₯π₯ππ2ππππβ2ππ=0 .
If π₯π₯ππβ1 = 1 (negative), ππ = βπποΏ½ = ββ π₯π₯πποΏ½2ππππβ1ππ=0 = ββ 1 β π₯π₯ππ 2ππππβ1
ππ=0 = β 2ππ β 1 β β π₯π₯ππ2ππππβ1
ππ=0 = β2ππ + 1 + β π₯π₯ππ2ππππβ1ππ=0
= β2ππβ1 + 1 + β π₯π₯ππ2ππππβ2ππ=0 = βπ₯π₯ππβ1 β (2ππβ1 β π’π’π’π’π’π’) + β π₯π₯ππ2ππππβ2
ππ=0
16
Addition and Subtraction
β’ Signed-magnitude
β As shown above, addition and subtraction of signed-magnitude numbers need corrections.
overflow
0 1 0 1 1 (11) + 0 0 1 1 0 (6) = 1 0 0 0 1 (-1)
0 1 0 1 1 (11) + 0 0 0 1 0 (2) = 0 1 1 0 1 (13)
1 0 0 1 1 (-3) + 1 0 1 0 1 (-5) =1 0 1 0 0 0 (+8)
overflow
1 1 0 0 0 (-8) + 1 1 0 0 1 (-9) =1 1 0 0 0 1 (-1)
overflow
0 1 1 0 1 (13) + 1 1 0 0 0 (-8) = 1 0 0 1 0 1 (5)
1 1 1 0 1 (-13) + 0 1 0 0 0 (8) = 1 0 0 1 0 1 (+5)
17
Addition and Subtraction
β’ Twoβs complement
0 1 0 1 1 (11) + 0 0 1 1 0 (6) = 1 0 0 0 1 (-15)
0 1 0 1 1 (11) + 0 0 0 1 0 (2) = 0 1 1 0 1 (13)
1 1 1 0 1 (-3) + 1 1 0 1 1 (-5) =1 1 1 0 0 0 (-8)
1 1 0 0 0 (-8) + 1 0 1 1 1 (-9) =1 0 1 1 1 1 (-17)
overflow indicator
overflow indicator
0 1 1 0 1 (13) + 1 1 0 0 0 (-8) = 1 0 0 1 0 1 (5)
1 0 0 1 1 (-13) + 0 1 0 0 0 (8) = 1 1 0 1 1 (-5)
18
Arithmetic Shift Operations
β’ For given {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
β’ Signed-magnitude π₯π₯ππβ1, 0, 0, β¦ , 0, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , 0, 0, β¦
β’ Twoβs complement
π₯π₯ππβ1, π₯π₯ππβ1, β¦ , π₯π₯ππβ1, π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , 0, 0, β¦
β’ Oneβs complement π₯π₯ππβ1, π₯π₯ππβ1, β¦ , π₯π₯ππβ1, π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , π₯π₯ππβ1, π₯π₯ππβ1, β¦
Supplementary Materials
20
Arithmetic Shift Operations
β’ Derivation of the extension of the twoβs complement ππ = ππππβ1β¦0 = {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
If X>0, it is the same as the signed-magnitude case. If X<0 (if X β -2n),
ππ = ππππβ1β¦0 = π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 βππ = {ππππβ1β¦0 + π’π’π’π’π’π’0}
(βππ)ext= 00 β¦ 0 ππππβ1β¦0 + π’π’π’π’π’π’0 00 β¦ 0 = 00 β¦ 0 πΎπΎ 00 β¦ 0 β βππ ext = 00 β¦ 0 πΎπΎ 00 β¦ 0 + π’π’π’π’π’π’βππ = 11 β¦ 1 πΎπΎοΏ½ 11 β¦ 1 + π’π’π’π’π’π’βππ
= 11 β¦ 1 πΎπΎοΏ½ + π’π’π’π’π’π’0 00 β¦ 0 = 11 β¦ 1 2ππ β πΎπΎ 00 β¦ 0 = 11 β¦ 1 2ππ β ππππβ1β¦0 + π’π’π’π’π’π’0 00 β¦ 0 = 11 β¦ 1 ππππβ1β¦0 00 β¦ 0
β΄ ππext = π₯π₯ππβ1 β¦ π₯π₯ππβ1 π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 00 β¦ 0
If X=2n, we can directly prove it.
21
Arithmetic Shift Operations
β’ Derivation of the extension of the oneβs complement ππ = ππππβ1β¦0 = {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
If X>0, it is the same as the signed-magnitude case. If X<0,
ππ = ππππβ1β¦0 = π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 βππ = {ππππβ1β¦0}
(βππ)ext= 00 β¦ 0 ππππβ1β¦0 00 β¦ 0 β βππ ext = 00 β¦ 0 ππππβ1β¦0 00 β¦ 0 = 11 β¦ 1 ππππβ1β¦0 11 β¦ 1
β΄ ππext = π₯π₯ππβ1 β¦ π₯π₯ππβ1 π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 π₯π₯ππβ1 β¦ π₯π₯ππβ1