PPP 2

advertisement
1
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Computers are built using the logic circuits that operate on information
represented by two-valued electric signals. We label the two values as “0” and “1”, and
we define amount of information represented by such a signal as a bit of information,
where bit stands for binary digit. The most natural way to represent a number in a
computer system is by a string of bits called a character code.
Number representation. Consider an n-bit vector
B = bn−1 . . . b1b0
where bi = 0 or 1 for 0 ≤ i ≤ n − 1. This vector can represent an unsigned integer value
V(B) in the range 0 to 2n − 1, where
V(B) = bn−1 × 2n−1 +・ ・ ・+b1 × 21 + b0 × 20
We need to represent both positive and negative numbers. Three systems are
used for representing such numbers:
• Sign-and-magnitude
• 1’s-complement
• 2’s-complement
2
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
In all three systems, the leftmost bit is 0 for positive numbers and 1 for negative
numbers. Positive values have identical representations in all systems, but negative
values have different
representations. Lets analyze four bit numbers.
In the sign-and-magnitude system, negative values are represented by
changing the most significant bit (b3) from 0 to 1 in the B vector of the corresponding
positive value.
In 1’s-complement representation, negative values are obtained by
complementing each bit of the corresponding positive number. For n-bit numbers, this
operation is equivalent to subtracting the number from 2n − 1.
In the 2’s-complement system, forming the 2’s-complement of an n-bit
number is done by subtracting the number from 2n. Hence, the 2’s-complement of a
number is obtained by adding 1 to the 1’s-complement of that number.
3
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
4
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Number Representation
The sign-and-magnitude system seems the most natural,
because we deal with sign-and-magnitude decimal values in
manual computations. The 1’s-complement system is easily
related to this system, but the 2’s-complement system may appear
somewhat unnatural. However, we will show that the 2’scomplement system leads to the most efficient way to carry out
addition and subtraction operations.
It is the one most often used in modern computers.
5
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Decimal to Binary Transform
Example:
117
2
Decimal
-10
58
number 117
17 - 4
- 16 18
1 - 18
0
2
29
-2
9
-8
1
2
14
- 14
0
2
7
-6
1
2
3
2
-2
1
1
LSB (Least Significant Bit) MSB (Most Significant Bit)
1110101
6
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Binary to Decimal Transform
For this transform is good to
memorize set of powers of
two numbers:
Refers to memory:
7
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128
28 = 256
29 = 512
210 = 1024
220 = 1 MB
230 = 1 GB
KB (Kilo Byte)
(Mega Byte)
(Giga Byte)
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Binary to Decimal Transform
Example:
Binary number
01110101
= 0×27 + 1×26 + 1×25 + 1×24 + 0×23 + 1×22 + 0×21 + 1×20
= 0×128 + 1×64 + 1×32 + 1×16 + 0×8 + 1×4 + 0×2 + 1×1
= 64 + 32 + 16 + 4 + 1 = 117
Decimal number
117
8
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Octal and Hexadecimal Systems
Octal system. Binary number is divided by groups of three bit
each. Each group is presented by decimal digit from 0 to 7.
Example:
101 001 010 111 110 001
5 1 2 7 6 1
Hexadecimal system. Binary number is divided by groups of
four bit each. For coding are used digits from 0 to 9. Additional
digits are A=10, B=11, C=12, D=13, E=14, F=15.
Example:
1010 0101 0001 1110 1100 0011
A
5
1
E
C 3
9
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Addition of the Positive Numbers:
In order to add multiple-bit numbers, we use a method
analogous to that used for manual computation with decimal
numbers. We add bit pairs starting from the low-order (right) end
of the bit vectors, propagating carries toward the high-order (left)
end. The carry-out from a bit pair becomes the carry-in to the
next bit pair to the left. The carry-in must be added to a bit pair in
generating the sum and carry-out at that position.
10
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Addition and Subtraction of Signed Numbers:
Example:
(+7) + (-3) = (+4)
(+7)
(-3)
0111
1011
(SM)
1100
(1’s)
1101
(2’s)
Direct transform of 1 1 0 1 to unsigned
decimal gives 1×23+1×22+0×21+1×20 = 13
To understand 2’s-complement
arithmetic, consider addition
modulo N (abbreviated as mod N).
Consider the case N = 16, shown
in the figure.
11
+
1
01 1 1
1 101
0100
+4
Carry-out bit
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Addition and Subtraction of Signed Numbers:
Example:
(-6) + (+5) = (-1)
(+5)
(-6)
0101
1110
1001
1010
(SM)
(1’s)
(2’s)
Locate 1 0 1 0 on the circle in Figure.
Then move 0 1 0 1 (5) steps in the
clockwise direction to arrive at 1 1 1 1,
which yields the correct answer of -1.
1010
+ 0101
0 1111
-1
Carry-out bit
12
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Addition and Subtraction of Signed Numbers:
To add two numbers, add
their n-bit representations, ignoring
the carry-out bit from the MSB
position. The sum will be the
algebraically correct value in 2’scomplement representation if the
actual result is in the range−2n−1
through +2n−1 − 1.
To subtract two numbers X and Y , that is, to
perform X − Y , form the 2’s-complement of Y , then add it to
X using the add rule. Again, the result will be the
algebraically correct value in 2’s-complement representation
if the actual result is in the range −2n−1 through +2n−1 − 1.
13
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Overflow and Sign Extension
Overflow:
When answers do not fall within the representable
range, we say that arithmetic overflow has occurred.
We add additional bits to extend range of numbers.
Sign Extension:
We often need to represent a value given in a
certain number of bits by using a larger number of bits.
For a positive number, this is achieved by adding zeroes to
the left. For a negative number in 2’s-complement
representation, the leftmost bit, which indicates the sign
of the number, is a 1. A longer number with the same
value is obtained by replicating the sign bit to the left as
many times as needed.
14
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Sign Extension
Example:
Positive number
0 1 0 1 1 0 0 1
0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1
Negative number
Sign
1 0 0 0 1 1 1 0
1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0
15
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Overflow in Integer Arithmetic
Using 2’s-complement representation, n bits can
represent values in the range −2n−1 to +2n−1 − 1. For
example, the range of numbers that can be represented by
4 bits is −8 through +7, as shown before. When the actual
result of an arithmetic operation is outside the
representable range, an arithmetic overflow has occurred.
When adding unsigned numbers, a carry-out of 1
from the most significant bit position indicates that an
overflow has occurred.
However, this is not always true when adding signed
numbers. For example, let’s us add 2’s-complement
representation for 4-bit signed numbers.
16
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Overflow in Integer Arithmetic
For example, using 2’s-complement representation for 4-bit
signed numbers, if we add +7 and +4, the sum vector is 1011,
which is the representation for −5, an incorrect result. In this
case, the carry-out bit from the MSB position is 0. If we add −4
and −6, we get 0110 = +6, also an incorrect result. In this case,
the carry-out bit is 1. Hence, the value of the carry-out bit from
the sign-bit position is not an indicator of overflow.
(Operations in 2’s complement system)
+7
+4
Negative !
17
01 1 1
+ 0100
10 1 1
(-5)
-4
-6
Carry-out bit
Positive !
1
1100
+ 1010
0110
(+6)
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Overflow in Integer Arithmetic 1
These observations lead to the following way to detect
overflow when adding two numbers in 2’s-complement
representation.
1. Examine the signs of the two summands and the sign of the
result. When both summands have the same sign, an overflow
has occurred when the sign of the sum is not the same as the
signs of the summands.
2. When subtracting two numbers, the testing method needed
for detecting overflow has to be modified somewhat; but it is
still quite straightforward.
18
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Overflow in Integer Arithmetic 2
Another method of overflow detecting is based on
analysis of carry-in signal to sign bit and carry-out signal from
sign bit.
(Operations in 2’s complement system)
+7
+4
01 1 1
-4
1100
+ 0100
-6
+ 1010
10 1 1
Carry-out bit
1
0110
Negative !
(-5)
Positive !
(+6)
If carry-in present but carry-out absent, or no carry-in but
there is carry-out, there is the overflow! It may be described
as
19
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Character Representation
The most common encoding scheme for characters is
ASCII (American Standard Code for Information Interchange).
Alphanumeric characters, operators, punctuation symbols, and
control characters are represented by 7-bit codes. It is
convenient to use an 8-bit byte to represent and store a
character. The code occupies the low-order seven bits. The
high-order bit is usually set to 0. Note that the codes for the
alphabetic and numeric characters are in increasing sequential
order when interpreted as unsigned binary numbers. This
facilitates sorting operations on alphabetic and numeric data.
MSB (Most Significant Bit), which increase range of
numbers, is used in representation of symbols of different
national languages.
20
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Character Representation
21
CENG 222 - Spring 2012-2013 Dr. Yuriy ALYEKSYEYENKOV
Download