Download Computer Science 101 Humans Computers Why binary?

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Humans
Computer Science 101
Number Systems
Computers
Binary Numbers (base 2)
Two’s complement and sign-magnitude
Binary fractions and floating point
ASCII codes for characters (A↔65)
Decimal Numbers (base 10)
Sign-Magnitude (-324)
Decimal Fractions (23.27)
Letters for text
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,2,3,4,5,6,7,8,9
Positional System - position gives power
Example:
3845 = 3x103 + 8x102 + 4x101 + 5x100
Positions:
…543210
Conversions
External
Internal
(Computer)
(Human)
25
11001
A
01000001
Humans want to see and enter numbers in
decimal.
Computers must store and compute with bits.
Binary: Non-negatives
Base 2
Uses binary digits (bits): 0,1
Positional system
Example:
1101 = 1x23 + 1x22 + 0x21 + 1x20
Binary to Decimal Conversion
Algorithm:
Expand binary number using positional scheme.
Perform computation using decimal arithmetic.
Example:
110012 ↔ 1x24 + 1x23 + 0x22 + 0x21 + 1x20
= 24 + 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 2510 to binary
N N/2 Rem
25 12 1
12 6
0
6
3
0
3
1
1
1
0
1
0
1210 = 110012
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 2510 to binary
N
Power P
A
25
16
4
00010000
9
8
3
00001000
1
1
0
00000001
0
2510 = 000110012
.
Binary Addition
One bit numbers:
+ 0
1
0 | 0
1
1 | 1 10
Example
1111 1
110101 (53)
+ 101101 (45)
1100010 (98)
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.
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.
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: 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
2’s Complement: Pros and Cons
Con:
Not so easy to comprehend
Can't just look at a negative number and know
what value it is (have to “undo” two'scomplement)
Pro:
Addition is exactly same as for positives
No additional hardware for negatives, and
subtraction.
Single representation of 0 (0000...)
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
Ranges for N-bit numbers
Unsigned (positive)
0000…00
or 0
1111…11 which is 2N-1
For N=8, 0 to 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