Number Systems

Download Report

Transcript Number Systems

Computer Science 210
Computer Organization
Number Systems
People
•
•
•
•
Decimal Numbers (base 10)
Sign-Magnitude (-324)
Decimal Fractions (23.27)
Letters for text
Computers
•
•
•
•
Binary Numbers (base 2)
Sign-magnitude
Binary fractions and floating point
ASCII codes for characters (A65)
Why binary?
• Information is stored in computer via
voltage levels.
• Using decimal would require 10 distinct and
reliable levels for each digit.
• This is not feasible with reasonable
reliability and financial constraints.
• Everything in computer is stored using bits:
numbers, text, programs, pictures, sounds,
videos, ...
Decimal: Non-negatives
•
•
•
•
Base 10
Uses decimal digits: 0, 1, . . ., 9
Positional System - position gives power
Example:
3845 = 3x103 + 8x102 + 4x101 + 5x100
• Positions:
…543210
Binary: Non-negatives
•
•
•
•
Base 2
Uses binary digits (bits): 0,1
Positional system
Example:
1101 = 1x23 + 1x22 + 0x21 + 1x20
Conversions
• External
Internal
(For people)
(For computer)
25
11001
A
01000001
• People want to see and enter numbers in
decimal.
• Computers must store and compute with
bits.
Binary to Decimal Conversion
• Algorithm:
– Expand binary number using positional scheme.
– Perform computation using decimal arithmetic.
• Example:
110012  1x24 + 1x23 + 0x22 + 0x21 + 1x20
= 2 4 + 23 + 20
= 16 + 8 + 1
= 2510
Decimal to Binary - Algorithm 1
• Algorithm:
While N  0 do
Set N to N/2 (whole part)
Record the remainder (1 or 0)
Set A to remainders in reverse order
Decimal to binary - Example
• Example: Convert 32410 to binary
N
Rem
N Rem
324
162
0
5
0
81
0
2
1
40
1
1
0
20
0
0
1
10
0
• 32410 = 1010001002
Decimal to Binary - Algorithm 2
• Algorithm:
Set A to 0 (all bits 0)
While N  0 do
Find largest P with 2P  N
Set bit in position P of A to 1
Set N to N - 2P
Decimal to binary - Example
• Example: Convert 32410 to binary
N
Power P
A
.
324
256
8
100000000
68
64
6
101000000
4
4
2
101000100
0
• 32410 = 1010001002
Binary Addition
• One bit numbers:
+ 0
1
0 | 0
1
1 | 1 10
• Example
1111 1
110101 (53)
+ 101101 (45)
1100010 (98)
Overflow
• In a given type of computer, the size of
integers is a fixed number of bits.
• 16 or 32 bits are popular choices
• It is possible that addition of two n bit
numbers yields a result requiring n+1 bits.
• Overflow is the term for an operation whose
results exceeds the size allowed for a
number.
Negatives: Sign-Magnitude
• With a fixed number of bits, say N
– The leftmost bit is used to give the sign
• 0 for positive number
• 1 for negative number
– The other N-1 bits are for the magnitude
• Example: -25 with 8 bit numbers
– Sign: 1 since negative
– Magnitude: 11001 for 25
– 8-bit result: 10011001
• Note: This would be 153 as a positive.
Ranges for N-bit numbers
• Unsigned (positive)
– 0000…00 or 0
– 1111…11 which is 2N-1
– For N=8, 0 - 255
• Sign-magnitude
– 1111…11 which is -(2N-1-1)
– 0111…11 which is 2N-1-1
– For N=8, -127 to 127
• 2’s Complement
– 1000…00 which is -2N-1
– 0111…11 which is 2N-1 - 1
– For N=8, -128 to 127
Octal Numbers
•
•
•
•
Base 8
Digits 0,1,2,3,4,5,6,7
Not so many digits as binary
Easy to convert to and from binary
Often used by people who need to see the
internal representation of data, programs,
etc.
Octal Conversions
• Octal to Binary
– Simply convert each octal digit to a three bit
binary number.
– Example:
5368 = 101 011 1102
• Binary to Octal
– Starting at right, group into 3 bit groups
– Convert each group to an octal digit
– Example
110111111010102 = 011 011 111 101 010
= 337528
Hexadecimal
• Base 16
Digits 0,…,9,A,B,C,D,E,F
• Hexadecimal  Binary
– Just like Octal, only use 4 bits per digit.
• Example:
98C316 = 1001 1000 1100 00112
• Example
110100111010112 = 0011 0100 1110 1011
= 34EB
Sign-Magnitude: Pros and Cons
• Pro:
– Easy to comprehend
– Easy to convert
• Con:
– Addition complicated (expensive)
If signs same then
…
else if positive part larger …
– Two representations of 0
Negatives: Two’s complement
• With N bit numbers, to compute negative
– Invert all the bits
– Add 1
• Example: -25 in 8-bit two’s complement
–
25  00011001
– Invert bits: 11100110
– Add 1:
1
11100111
2’s Complement: Pros and Cons
• Con:
– Not so easy to comprehend
– Human must convert negative to identify
• Pro:
– Addition is exactly same as for positives
No additional hardware for negatives, and
subtraction.
– One representation of 0
2’s Complement: Examples
• Compute negative of -25 (8-bits)
–
–
–
–
We found -25 to be 11100111
Invert bits: 00011000
Add 1:
00011001
Recognize this as 25 in binary
• Add -25 and 37 (8-bits)
–
11100111 (-25)
+ 00100101 ( 37)
(1)00001100
– Recognize as 12
Facts about 2’s Complement
• Leftmost bit still tells whether number is
positive or negative as with sign-magnitude
• 2’s complement is same as sign magnitude
for positives
2’s complement to decimal (examples)
• Assume 8-bit 2’s complement:
– X = 11011001
-X = 00100110 + 1 = 00100111
= 32+4+2+1 = 39 (decimal)
So, X = -39
– X = 01011001
Since X is positive, we have
X = 64+16+8+1 = 89