Title: Number Systems and Binary Math
1Number Systems and Binary Math
2Why do computers use switches?
- Why did engineers select a binary-state (two
state) switch as the fundamental computer
component building block. - It was simple and
- reliable and
- it supported built-in error checking.
3Adding Switches Doubles Capacity
- 1 switch 2 numbers
- 2 switches 4 numbers
- 3 switches 8 numbers
- 4 switches 16 numbers
4Units of Computer Measurement
- The smallest unit of computer measurement is a
binary digit (or more commonly, the bit). - The bit represents a single binary digit, either
a 1 or a 0.
5Larger Units of Measurement
- Bit A single binary digit
- Nibble 4 Bits
- Byte 2 Nibbles 8 Bits
- Word 2 Bytes 16 Bits
- Double Word 2 Words 32 Bits
- Kilobyte 1024 Bytes
- Megabyte 1024 Kilobytes
- Gigabyte 1024 Megabytes
6Starting with Numbers
- Each switch can either have sufficient voltage
(ON) or have insufficient voltage (OFF). - Another way of stating voltage 1 or 0
- This is a common approach in science to use
abstract, notational systems to describe things.
1
0
7Numbering Systems
- To figure the answer to this question, lets step
back and look at numbering systems in general. - Originally, human being counted with tally math
systems, with a mark for each sheep they were
counting - If you had 10 sheep, you made 10 marks
8Numbering Systems
- Later, there were advancements in tally math,
using special symbols for special numbers. - Instead of 10 marks for 10 sheep, lets make a
special mark for 10 sheep - But this notational system was cumbersome you
had to learn a lot of symbols, and arithmetic was
difficult
9Positional Numbering Systems
- Wonderful advancement over tally math.
- Lets keep a few, core numbers (digits).
- We can use these digits to represent REALLY big
numbers if we say that the value of a number is
now made up of 2 parts - A count value
- A place value
10Place Values
3 7
- Consider the number 37
- The 7 stands for 7 (its count value) ones (its
positional value). Together, 7 times 1 is 7
11Place Values
3 7
- Consider the number 37
- The 3 stands for 3 (its count value) tens (its
positional value). Together, 3 times 10 is thirty
12Place Values
3 7
- Consider the number 37
- Total value 7 (7 1, from the ones position)
and thirty (3 10, from the 10 position) is 37!
13Place Values
3 7
Ones
Tens
7 1
3 10
14Base-10 (Decimal)
- A base refers to the number of digits (counting
numbers) available in a numbering scheme. - The highest single digit in base is one less than
the base number. - In Base-10, the digits are
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
15Base-10 (Decimal)
- What happens after 9?
- The counter in the right column resets itself to
0 and 1 is added to the value of the next
left-most column
0 9
1 0
16Base-10 (Decimal)
- Interpreting a multiple digit number simply means
to expand its notation, and write it out by each
positional value
7 4 2
Hundreds
Ones
Tens
2 1
4 10
7 100
17Base-10 (Decimal)
- What about using some math to describe the
number
7 4 2
100
101
102
2 100
4 101
7 102
18Using Expanded Notation
- We can use our expanded notation to figure the
value of a number
19A Note on Superscripts
- Weve seen superscripts in expressions before
today. In math, they are used to indicate an
exponent in an expression
xy
20A Note on Subscripts
- Lets introduce one more notation the
subscript. It is used to indicate the base of a
number (the number of digits available in a
numbering system)
xy
21A Note on Subscripts
- Remember our previous example?
- It had a subscript of 10, meaning that the
number we use the Base-10 (Decimal) numbering
system to decode this number.
74210
22Thinking in Binary (Base-2)
- Instead of having 10 digits, the binary (Base-2)
numbering systems has 2 base digits (0 and 1). - Counting in Base-2 0, 1, 10, 11, 100, 101, 110,
111, 1000, 1001, 1010 - In binary, after the right-most placeholder
reaches one, it resets to 0 and advances the next
left-most placeholder. - Our base number in binary is 2, therefore we can
use exponents of 2 for placeholder notation
23Binary Placeholders
24Binary Placeholders
1 0 1 1
20
21
22
23
25Converting Base-2 to Base-10
1 0 1 1
- Lets convert 10112.
- STEP 1 Find all switches that are turned OFF.
Cross them out and bring down the zero.
20
21
22
23
0
26Converting Base-2 to Base-10
1 0 1 1
- STEP 2 For each placeholder turned ON,
calculate its exponential expression.
20
21
22
23
0
1
2
8
27Converting Base-2 to Base-10
1 0 1 1
- STEP 3 Add the results of the exponents. The sum
is the Base-10 equivalent.
20
21
22
23
0
1
2
8
1110
28Converting from Base-10 to Base-2
- Consider 2310. How can we translate this to its
Base-2 equivalent? - Well use successive division. Essentially, that
means well divide by 2 over and over and keep
track of our remainders.
29Converting Base-10 to Base-2
- STEP ONE Draw a table with three columns. Label
the last two columns quotient and remainder,
respectively.
30Converting Base-10 to Base-2
- STEP TWO In the first available left-most
column, put the expression 23/2. Calculate the
division and put the quotient and remainder in
their respective columns.
31Converting Base-10 to Base-2
- STEP THREE Take the quotient of the previous
expression and divide it by two. Repeat until
have 0 for a quotient.
32Converting Base-10 to Base-2
- STEP FOUR Read the REMAINDER column from the
bottom to the top. The 1s and 0s in the remainder
column represent the binary number.
33Converting Base-10 to Base-2
34Checking the Results
- So.. 2310 101112!
- Lets check our answer by reversing the process
- 101112 (1 24) (0 23 ) ( 1 22 ) (1
21) (1 20) - 16 0 4 2 1 2310
35Groups of Switches
- We have already seen that a single switch cant
encode much information. However, if we group
switches together, we can expand our encoding
ability. - Computers often encode many types of data,
graphics and large numbers for example, not in
Base-2, but in Base-8 or Base-16.
36Introducing Octal
- Computer scientists are often looking for
shortcuts to do things. One of the ways in which
we can represent Base-2 numbers is to use their
octal (Base-8) equivalents. - This is especially helpful when we have to do
fairly complicated tasks using large numbers.
37Introducing Octal
- The octal numbering system includes eight base
digits, 0-7. - After 7, the next placeholder to the right begins
with a 10, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13
...
38Octal Digits
Click to Return to the Last Slide Viewed
39Octal Placeholders
Ones
Placeholder Name
Eights
Sixty-Fours
642
84
11
Value
Exponential Expression
822
814
801
40Converting Base-2 to Base-8
100011001010012
STEP ONE Take the binary number and from right
to left, group all placeholders in triplets. Add
leading zeros, if necessary
010
001
101
001
100
Click to See Octal Digits Table
41Converting Base-2 to Base-8
100011001010012
214518
STEP TWO Convert each triplet to its
single-digit octal equivalent. (HINT For each
triplet, the octal conversion is the same as
converting to a decimal number)
010
001
101
100
001
2
1
1
5
4
42Converting Base-8 to Base-2
435208
1000111010100002
Take each octal digit and convert each digit to a
binary triplet. Insert leading zeros, if needed
4
3
0
2
5
100
000
010
011
101
Click to See Octal Digits Table
43Converting Base-8 to Base-10
23748 N10
Multiply each octal digit by the exponential
expression that represents its placeholder and
then add the values
283 2512 1024 8 382 364 192 8 781
78 56 8 480 41 4 8 127610
44Converting Base-10 to Base-8
- To convert Base-10 to Base-8, well use
successive division - Our new problem483210 ?8
45Converting Base-10 to Base-8
- STEP ONE Draw a table with three columns. Label
the last two columns quotient and remainder,
respectively.
46Converting Base-10 to Base-8
- STEP TWO In the first available left-most
column, put the expression 4832/8. Calculate the
division and put the quotient and remainder in
their respective columns.
4832/8
604
0
47Converting Base-10 to Base-8
- STEP THREE Take the quotient of the previous
expression and divide it by eight. Repeat until
youve have 0 for a quotient.
4832/8
604
0
48Converting Base-10 to Base-8
- STEP FOUR Read the REMAINDER column from the
bottom to the top. The numbers in the remainder
column represent the octal number.
49Converting Base-10 to Base-8
50Base-16
- Whats tricky about Base-16?
- This time, we are converting to a base that has
more base digits than Base-10 (Base-2 and Base-8
have fewer digits than Base-10) - So what?
51Hexadecimal Numbering
- There are new symbols for the Base-16 equivalents
of the Base-10 numbers 10, 11, 12, 14 and 15.
Examine
52Converting Base-10 to Base-16
- To convert Base-10 to Base-16, well again use
successive division - Our new problem21410 ?16
53Converting Base-10 to Base-16
- STEP ONE Draw a table with three columns. Label
the last two columns quotient and remainder,
respectively.
54Converting Base-10 to Base-16
- STEP TWO In the first column, write the
expression 214/16. Calculate the expression,
taking care not to divide past the decimal point.
Write the quotient and remainder in their
respective columns.
55Converting Base-10 to Base-16
- STEP THREE Keep bringing down the quotient of
the previous expression and dividing it by 16
until you have a quotient of zero.
56Converting Base-10 to Base-16
- STEP FOUR Convert all remainders to their hex
equivalents.
57Converting Base-10 to Base-16
- STEP FIVE Read the numbers in the REMAINDER
column from the bottom up to get your hex
equivalent.
21410 D616
58Binary Arithmetic
- Computer processing requires a little more
capability in binary math, notably arithmetic. - Lets consider addition and subtraction
59Binary Addition
- Just a few combinations are possible
- 02 02 02
- 02 12 12
- 12 02 12
- What about 12 12?
60Binary Addition
- 12 12 102
- Remember what that 10 means it means a zero in
the right column, and a one in the left column - When you carry in base two, you are bringing a
power of two to the left
61Binary Addition
1
1
11102 10112
1410
1110
1
0
0
2510
2
62Binary Subtraction
- Subtraction in base two is similar to addition
- 112 112 002
- 112 002 112
- 102 002 102
- What about 102 - 12?
63Binary Addition
- 102 - 12 12
- Think about borrowing in decimal you are really
borrowing a power of your base - In Base-10, we borrow 10 from the left column and
give it to the next column to the right. So - In Base-2, we borrow 2 from the left column and
give it to the next column to the right.
64Binary Addition
1
1
1
001100112 -000101102
0
0
5110
2210
1
0
1
1
1
0
0
0
2910
2
65Binary Borrowing A Little Trick
- Many students find it convenient to just mentally
convert the binary number to decimal, complete
the subtraction, and then convert the answer back
to binary. - Consider 102 12 ?
- A one in binary is still a one in decimal
- When you borrow for the zero, you bring over a
power of two, which is equal to two - The decimal conversion for the borrowing is 2-1,
which is 1 - And 110 12
- Be sure to add your answer back up as a check
66Negative Numbers
- We have mastered binary math for positive
integers - But what about negative numbers?
- Handling the negative sign has proven somewhat
problematic, as we will see
67Negative Integers Sign/Magnitude Notation
- The first solution for encoding negative numbers
in binary form was to dedicate a switch (which we
now know is a memory location) to communicate
whether a number was positive or negative - The only thing required was to agree, in the bank
of switches representing the number, which switch
referred to the sign - In one of the more popular encoding notations
for negative numbers, the first switch is the
sign.
68Negative Integers Sign/Magnitude Notation
- A 0 setting means the number is positive, a 1
setting means the number is negative. - This encoding scheme (for signed integers) is
called sign/magnitude notation. - The first switch is the sign, the remaining
switches represent the binary magnitude of the
number. - Which highlights one of our key concepts about
binary encoding the leftmost digit could be a
negative sign, or a one in magnitude - The computer must be told which
interpretation/decoding scheme to use
69Sign/Magnitude The Problem
- What was wrong with this scheme?
- Great for all numbers except 0
- This encoding scheme allows you to come up with 2
distinct encoding schemes for 0, one with a
positive sign, and one with the negative sign - The one with the negative sign has no
mathematical meaning, and the ambiguity of two
patterns representing the same number is
problematic. - So, most computers use a different scheme than
sign/magnitude for representing negative integers
70Twos Complement
- Twos Complement solves the ambiguity problem.
- The scheme works because we are in binary math,
which has only 2 digits. - Offsetting one moves you to the only other
possible digit, etc.
71Twos Complement
- In Twos Complement, you encode positive integers
normally. - To use Twos Complement for negatives
- Complement every digit in the number (change 1s
to 0s and 0s to 1s) - Add 1 to the complemented number
- Example101 010 1 011
72Twos Complement Math
- Twos Complement allows us to add the
representation and processing of negative
integers to our growing computing capability. - To add a positive and negative number, first
perform the twos complement trick on the negative
number, and then add normally. - To add two negative numbers, first encode both of
them in 2s complement, and then add normally.
73What about fractional values?
- Our goal is to learn how to encode all numbers in
a way that they can be represented using switch
settings - We can encode positive integers
- We can encode negative integers
- But what about decimal numbers (numbers with
fractional values)? - To store decimal numbers, most computers utilize
scientific notation
74Binary Math and Scientific Notation
- As a civilization, we now work with numbers so
big and so small that mathematicians have already
had to wrestle with creating a manageable
notation. - Scientists developed scientific notation as a
standard way to represent numbers.
75Binary Math and Scientific Notation
- Consider the following example/-5.334
10/-23 - The 5.334 part is the mantissa.
- The 10 part is the base.
- The 23 part is the exponent.
76Scientific Notation
- Lets move up a level of abstraction to the more
generalized case of scientific notation - /- M B/-E
- M is the mantissa.
- B is the base.
- E is the exponent.
- /- means the number can be positive or negative.
77Switch Math the Holes
- If we can figure out how to use scientific
notation to encode base ten decimal numbers in a
binary form of scientific notation, we can
represent any finite number in our computer and
our switch math will be complete
78Interpreting Scientific Notation
- It turns out that handling scientific notation,
or any other encoding scheme, is amazingly simple - We design the computer to know which
interpretation scheme to use! - We will just figure out how to program in some
logic that says if a number is tagged as being
in scientific notation, just use a look up chart
to interpret the number.
79Interpreting Scientific Notation
- Given an encoded number, to decode it such that
it is in scientific notation, you would need to
know several things - How big is the overall memory allocation (how
many switches were used)? - How many switches are dedicated to the mantissa,
and which are they? - How many switches are dedicated to the exponent,
and which are they?
80One Last Thing!
- Okay, so we know we will always need to know the
encoding scheme to interpret scientific notation. - But, once we know the encoding scheme for any
given computer, we need to be able to encode in
this scientific notation form
81Fractional Value Numbers
- Consider the decimal (base 10) number 5.75
- How can we encode this is switches?
- We already know how to do half of the encoding
the integer part (the numbers to the left of the
decimal point). - Lets break the problem into two parts, the left
hand side (of the decimal point) and the right
hand side
82Left Side of a Decimal Number
- Okay, our number is 5.75
- To convert the 510 to ?2
- Use successive division
510 1012
83Right Side of a Decimal Number
- On the left hand side, we divided successively by
2 to convert - On the right hand side, we multiply successively
by 2 to convert - We are multiplying numbers by 2 to promote them
to the left hand side of the decimal place. - Once promoted, we record them as a digit in our
answer. - This process is called extraction.
84Extraction
- STEP ONE Draw a table with two columns. Label
the columns for the expression and the
extraction, respectively.
85Extraction
- STEP TWO Write down your original number and
multiply it by 2. Put the whole number part in
the Extraction column.
86Extraction
- STEP THREE Bring down the fractional part (the
number to the right of the decimal point) and
multiply it by two. Extract the whole number, as
before.Repeat until you extract 0.
87Extraction
- STEP FOUR Read the extraction column, from top
to bottom. This number represents your binary
equivalent.
0.7510 1102
88Both Sides Now
- 5.7510 101.1102 This isnt in scientific
notation yet, but at least we have figured out
how to convert it to binary - Recall the steps so far
- Do the problem in halves
- For the left side of the decimal, use successive
division by 2 and read the remainders from bottom
to top - For the right hand side of the decimal, use
successive multiplication by 2 and read the
extractions from top to bottom
89Lets Try One More
- Lets try another problem. This time, with a
number that doesnt convert to binary as easily - Lets try this number
- 2.5410 ?2
90Converting
- Remember our algorithm left side by successive
division, right side by successive multiplication
91Left Side of 2.54
Reading the remainders from bottom to top, 210
102
92Right Side of 2.54
- Reading the extraction column, top to bottom
- .5410 1000101002
- What would have if we kept extracting, past .24
2? - Lets convert our number back to Base-10 to see
what happens
93Lets Go Back the Other Way
- Putting 10.1000101002 back to base 10
- Left hand side first, expanded notation
- 102 (0 20) (1 21) 0 2 210
- Now, to convert the right hand side
94Right Side of a Decimal Number
- Remember, the left hand side represents powers of
two positive powers of two - Moving left from the decimal point, we saw the
unit values were 20, 21, 22, 23, 24, etc. - Doesnt it seem reasonable that the units to the
right of the decimal represent negative powers of
two? - Moving from the right of the decimal point, we
will see unit values for 2-1, 2-2, 2-3, 2-4, 2-5,
etc.
95Okay, But What Does That Mean?
- Exactly what is a number to a negative power,
such as 2-1, 2-2, 2-3? - These are numbers you already know we are just
used to seeing them written in a different
format
96Back to Our Conversion
- Remember, we are translating 10.100010100
- We finished the left hand side 102 210
- Now for the right hand side
- .100010100
- (1 2-1) (0 2-2) (0 2-3) (0 2-4)
(1 2-5) (0 2-6) - (1 2-7) (0 2-8) (0 2-9)
- Which is equal to ½ 1/32 1/128 (we can throw
out the zero terms) - Which is equal to 69/128 .539
- Combining both sides, 10.1000101002 2.53910
- But we started with 2.54! Why did we get the
error?
97The Imprecision of Conversions
- We started with 2.5410, took it to switch units
in binary, and then back to decimal - Our result was 2.539
- This is a precision error
- 2.539 / 2.540 .99, so our percentage error is
1!!! - As you might imagine, in large, multi-step
calculations these errors can become significant
enough for you to see if you are working in a
package such as Excel.
98Storing Binary in Scientific Notation
- Remember, we said if we could encode a decimal
number in switch math, we were good to go. - Decimal numbers are usually stored in a binary
version of scientific notation. - If we can take our translation of 2.54, and store
it in a binary version of scientific notation, we
can quit!
99Last Step
- There are several switch encoding schemes for
scientific notation. - The good news, remember, is that you (and the
computer!) will always have to be told which
encoding scheme to use. - One common encoding scheme is 16-bit encoding
10016 Bit Scientific Notation Encoding
- In 16 bit encoding, 16 bits (or switches) are
allocated to the numeric part of a number
expressed in scientific notation. - There are a few different flavors of 16 bit
encoding, with a different allocation of switches
between the mantissa and the exponent.
101One 16 Bit Encoding in Detail
- Remember the parts of a number in scientific
notation? the mantissa, base and exponent? - Each is assigned to specific locations in the 16
bit switch pattern. In the variation we are
looking at first - Switch 1 Sign of the mantissa
- (Decimal point assumed to go next, but isnt
stored) - Switches 2-10 next 9 switches are for the
mantissa - Switch 11 Sign of the exponent
- Switches 12-16 next 5 switches are for the
exponent
10216 Bit More
- What happened to the base? We dont have to store
that, because it will always be base two, the
binary base from the world of switches - Dont need to store the decimal point, because
the encoding scheme will guarantee it is placed
correctly when decoded - Theres only one problem our number must be
normalized before encoding - This means that we need to adjust the exponent as
required to insure that the first significant
digit is the first digit to the right of the
decimal point
103Normalizing
- Take the number 101.112, which is really 101.11
20 - Before we can store this number in scientific
notation, we must normalize it. - We have to adjust the exponent until the first
significant digit, which is the leftmost 1, is
the first digit to the right of the decimal
point. - In other words, we have to move the decimal place
in our example 3 places to the left, so that the
number become .10111.
104Normalizing
- How can we legally do this, without changing the
value of the number? - Every time you move the decimal place to the
left, you must adjust the exponent by a positive
increment. - In our case, we moved 3 decimal points to the
left, so our new exponent is 23 - In other words, 101.11 20 .10111 23
105Normalizing Examples
- A couple more, to make sure we have it
- 1101.11 20 .110111 24
- 101.1 20 .1011 23
- .01 20 .1 2-1
- .001 20 .1 2-2
106Algorithm
- 1. Convert the base ten number to base two, one
side of the decimal place at a time - Left hand side, successive division
- Right hand side, successive multiplication
- In our case, 2.5410 10.1000101002
107Algorithm (cont)
- Put number in normalized form10.100010100 20
.10100010100 22 - Determine what the encoding scheme is
- For the sake of our problem , assume the
following 16 bit encoding - 1 Sign of mantissa
- 2-12 Mantissa
- 13 Sign of exponent
- 14-16 Exponent
108Algorithm (cont)
Using the described notation system, the decimal
2.5410 would be stored in switch binary math as
the following pattern of zeros and
ones 0101000101000010
109Questions?