+ 1 - Help-A-Bull

Download Report

Transcript + 1 - Help-A-Bull

Lecture 4
• Last Lecture
– Positional Numbering Systems
– Converting Between Bases
• Today’s Topics
– Signed Integer Representation
•
•
•
•
Signed magnitude
One’s complement
Two’s complement
Excess-M representation
1
Positional Number Systems
• A Number 𝐷 consists of 𝑛 digits with each digit has a particular position.
• Every digit position is associated with a fixed weight.
• Weight 𝑤𝑖 for digit position 𝑖: powers of some constant value, called
radix or the base, such that 𝒘𝒊 = 𝒓𝒊 .
𝑫 = 𝒅𝒏−𝟏 𝒓𝒏−𝟏 + 𝒅𝒏−𝟏 𝒓𝒏−𝟐 + ⋯ + 𝒅𝟐 𝒓𝟐
+ 𝒅𝟏 𝒓𝟏 + 𝒅𝟎 𝒓𝟎
• A number system of radix 𝑟, typically has a set of 𝒓 allowed digits
{0, 1, ⋯ , 𝑟 − 1}.
• Most Significant Digit (MSD): the leftmost digit with the highest weight
• Least significant Digit (LSD): the rightmost digit with the lowest weight
Representing Fractions
• A number Nr in radix r can also have a fraction part:
Nr = dn-1dn-2 … d1d0 . d-1 d-2 … d-m+1 d-m
MSD
Integer Part
Fraction Part
Radix Point
• The number Nr represents the value:
Nr = dn-1 × rn-1 + … + d1 × r + d0 +
0 ≤ di < r
LSD
(Integer Part)
d-1 × r -1 + d-2 × r -2 … + d-m × r –m
(Fraction Part)
Popular Number Systems
• Decimal Number System: Radix = 10
– Ten digit values: 0, 1, 2, …, 9
• Binary Number System: Radix = 2
– Only two digit values: 0 and 1
– Numbers are represented as 0s and 1s
• Octal Number System: Radix = 8
– Eight digit values: 0, 1, 2, …, 7
• Hexadecimal Number Systems: Radix = 16
– Sixteen digit values: 0, 1, 2, …, 9, A, B, …, F
– A = 10, B = 11, …, F = 15
• Octal and Hexadecimal numbers can be converted easily to
Binary and vice versa
Binary/Octal/Hex-to-Decimal
Conversion
• Binary to Decimal: N2 =(dn-1  2n-1) + ... + (d1  21) + d0
• Octal to Decimal: N8 = (dn-1  8n-1) +... + (d1  8) + d0
• Hex to Decimal: N16 = (dn-1  16n-1) +... + (d1  16) + d0
• Examples:
(10011101)2 = 27 + 24 + 23 + 22 + 1 = 157
(7204)8 = (7  83) + (2  82) + (0  8) + 4 = 3716
(3BA4)16 = (3  163) + (11  162) + (10  16) + 4 = 15268
Summary of Number Systems Properties
Decimal to Binary Conversion
• N = (dn-1  2n-1) + ... + (d1  21) + (d0  20)
• Dividing N by 2 we first obtain
– Quotient1 = (dn-1  2n-2) + … + (d2  2) + d1
– Remainder1 = d0
– Therefore, first remainder is least significant bit of binary number
• Dividing first quotient by 2 we first obtain
– Quotient2 = (dn-1  2n-3) + … + (d3  2) + d2
– Remainder2 = d1
• Repeat dividing quotient by 2
– Stop when new quotient is equal to zero
– Remainders are the bits from least to most significant bit
Decimal-To-Binary Integer
Conversion
• Sum-of-Weights Methods
– Determine the set of binary weights whose
sum is equal to the decimal number.
– Place 1s in the appropriate weight positions.
𝟗 = 𝟖 + 𝟏 = 𝟐𝟑 +𝟐𝟎
𝟐𝟑
𝟐𝟐
𝟐𝟏
𝟐𝟎
1
0
0
1
Decimal-to-Hexadecimal Conversion
 Repeatedly divide the decimal integer by 16
 Each remainder is a hex digit in the translated value
 Example: convert 422 to hexadecimal
least significant digit
most significant digit
422 = (1A6)16
stop when
quotient is zero
 To convert decimal to octal divide by 8 instead of 16
Decimal-to-Octal Conversion
 Repeatedly divide the decimal integer by 8
 Each remainder is a hex digit in the translated value
 Example: convert 359 to octal
Division
Quotient
Remainder
359/8
44
7
44/8
5
4
5/8
0
5
359 = (547)8
stop when
quotient is zero
least significant digit
most significant digit
Converting Decimal Fractions to Binary
• Sum-of-weights
0.625 = 0.5 + 0.125 = 2−1 + 2−3 = 0.101
• Repeated Multiplication by 2
– Repeatedly multiplying the fractional results of
successive multiplications by 2.
– Stop when new fraction = 0.0, or when enough
fraction bits are obtained
– The carries form the binary number.
Conversion Procedure to Radix r
• To convert decimal number N (with fraction) to radix r
• Convert the Integer Part
– Repeatedly divide the integer part of number N by the radix r and
save the remainders. The integer digits in radix r are the
remainders in reverse order of their computation. If radix r > 10,
then convert all remainders > 10 to digits A, B, … etc.
• Convert the Fractional Part
– Repeatedly multiply the fraction of N by the radix r and save the
integer digits that result. The fraction digits in radix r are the
integer digits in order of their computation. If the radix r > 10,
then convert all digits > 10 to A, B, … etc.
• Join the result together with the radix point
Simplified Conversions
 Converting fractions between Binary, Octal, and
Hexadecimal can be simplified
 Starting at the radix pointing, the integer part is
converted from right to left and the fractional part is
converted from left to right
 Group 4 bits into a hex digit or 3 bits into an octal digit
integer: right to left
7
2
6
1
fraction: left to right
3 . 2
4
7
4
5
2 Octal
1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 . 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 Binary
7
5
8
B
.
5
3
C
A
8 Hexadecimal
 Use binary to convert between octal and hexadecimal
Signed Numbers
• Several ways to represent a signed number
– Sign-Magnitude
– 1's complement
– 2's complement
• Divide the range of values into 2 equal parts
– First part corresponds to the positive numbers (≥ 0)
– Second part correspond to the negative numbers (< 0)
• The 2's complement representation is widely used
– Has many advantages over other representations
Sign-Magnitude Representation
Sign
Bit
bit
n-2
...
bit
2
bit
1
bit
0
Magnitude = n – 1 bits
• Independent representation of the sign and magnitude
• Leftmost bit is the sign bit: 0 is positive and 1 is negative
• Using 𝑛 bits, largest represented magnitude = 2n-1 – 1
Sign-magnitude
representation of +45
using 8-bit register
0
0
1
0
1
1
0
Sign-magnitude
representation of -45
using 8-bit register
1
1
0
1
0
1
1
0
1
Signed Magnitude
+N
N
• Ex. 4-bit signed magnitude 0 0000 1000
– 1 bit for sign
– 3 bits for magnitude
– 𝑁 = 2𝑛−1 − 1
1 0001 1001
2 0010 1010
3 0011 1011
4 0100 1100
Note: signed magnitude allows two different
representations for zero: positive zero and
negative zero.
5 0101 1101
6 0110 1110
7 0111 1111
16
Properties of Sign-Magnitude
• Two representations for zero: +0 and -0
• Symmetric range of represented values:
For n-bit register, range is from -(2n-1 – 1) to +(2n-1 – 1)
For example using 8-bit register, range is -127 to +127
• Hard to implement addition and subtraction
– Sign and magnitude parts have to processed independently
– Sign bit should be examined to determine addition or subtraction
Addition is converted into subtraction when adding numbers of
different signs
– Need a different circuit to perform addition and subtraction
Increases the cost of the logic circuit
One's Complement Representation
 Positive numbers
 Signed value = Unsigned value
 Negative numbers
8-bit Binary Unsigned
value
value
Signed
value
 Signed value = Unsigned value – (2n-1)
00000000
0
0
 n = number of bits
00000001
1
+1
00000010
2
+2
...
...
...
01111110
126
+126
 Negative weight for MSB
 Another way to obtain the signed value is to
assign a negative weight to MSB
1
1
0
1
0
0
01111111
127
+127
32
16
8
4
2
1
10000000
128
-127
= -127 + 32 + 16 + 4 = -75
10000001
129
-126
...
...
...
11111110
254
-1
11111111
255
-0
1
0
-127 64
 Forming the One's Complement
 Bit flipping for negative numbers
 One’s complement range:
[−(2𝑛−1 − 1), 2𝑛−1 − 1]
Two's Complement Representation
 Positive numbers
 Signed value = Unsigned value
 Negative numbers
 Signed value = Unsigned value – 2n
 n = number of bits
 Negative weight for MSB
 Another way to obtain the signed value
is to assign a negative weight to MSB
1
0
-128 64
1
1
0
1
0
0
32
16
8
4
2
1
= -128 + 32 + 16 + 4 = -76
 Two’s complement range:
[−2𝑛−1 , 2𝑛−1 − 1]
8-bit Binary Unsigned
value
value
Signed
value
00000000
0
0
00000001
1
+1
00000010
2
+2
...
...
...
01111110
126
+126
01111111
127
+127
10000000
128
-128
10000001
129
-127
...
...
...
11111110
254
-2
11111111
255
-1
Forming the Two's Complement
starting value
00100100 = +36
step1: reverse the bits (1's complement)
11011011
step 2: add 1 to the value from step 1
+
sum = 2's complement representation
11011100 = -36
1
Sum of an integer and its 2's complement must be zero:
00100100 + 11011100 = 00000000 (8-bit sum)  Ignore Carry
Another way to obtain the 2's complement:
Start at the least significant 1
Leave all the 0s to its right unchanged
Complement all the bits to its left
Binary Value
= 00100 1 00
least
significant 1
2's Complement
= 11011 1 00
Properties of the 2’s Complement
• The 2’s complement of N is the negative of N
• The sum of N and 2’s complement of N must be zero
The final carry is ignored
• Consider the 8-bit number N = 001011002 = +44
-44 = 2’s complement of N = 110101002
001011002 + 110101002 = 1 000000002 (8-bit sum is 0)
Ignore final carry
• In general: Sum of N + 2’s complement of N = 2n
where 2n is the final carry (1 followed by n 0’s)
• There is only one zero: 2’s complement of 0 = 0
Comparison
Exercise
Show how the numbers +53 and -53 are represented in 8bit registers using signed-magnitude, 1's complement and
2's complement representations.
Excess-M Representation
• An unsigned binary integer 𝑀 (called the bias) represents the
value 0.
• Typically choose 𝑀 = 2𝑛−1 − 1.
– 4-bit representation, the bias should be 24−1 − 1 = 7
• Excess-M representation : simply by adding M to that integer.
– Assuming that we are using excess-7 representation
– The integer 010 is represented as 0 +7 = 710 = 01112.
– The integer 310 is represented as 3 + 7 = 10 10 = 10102.
– The integer -7 is represented as -7 + 7 = 0 10 = 00002 .
– To find the decimal value of the excess-7 binary number 11112 subtract
7: 11112 = 1510 and 15 - 7 = 8; thus 11112, in excess-7 is +810.
• Data range: [−(2𝑛−1 −1), 2𝑛−1 ]
24
Excess-M Representation
• Lets compare our representations:
25
Quiz: Fill in the following table to indicate what each binary
pattern represents using the various formats.
Unsigned
integer
4-bit Binary
Value
Signed
Magnitude
1’s Complement
2’s Complement
Excess-7
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
26
Exercise - Solution
Fill in the following table to indicate what each binary pattern
represents using the various formats.
27