+ 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