Number Systems and Binary Math - PowerPoint PPT Presentation

1 / 109
About This Presentation
Title:

Number Systems and Binary Math

Description:

Why did engineers select a binary-state (two state) switch as the fundamental ... 'Fours' 'Eights' Let's deconstruct 10112: Binary Placeholders. 1 0 1 1. 20 ... – PowerPoint PPT presentation

Number of Views:162
Avg rating:3.0/5.0
Slides: 110
Provided by: bobmo6
Category:

less

Transcript and Presenter's Notes

Title: Number Systems and Binary Math


1
Number Systems and Binary Math
2
Why 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.

3
Adding Switches Doubles Capacity
  • 1 switch 2 numbers
  • 2 switches 4 numbers
  • 3 switches 8 numbers
  • 4 switches 16 numbers

4
Units 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.

5
Larger 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

6
Starting 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
7
Numbering 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

8
Numbering 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

9
Positional 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

10
Place 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

11
Place 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

12
Place 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!

13
Place Values
3 7
Ones
Tens
7 1
3 10
14
Base-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

15
Base-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
16
Base-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
17
Base-10 (Decimal)
  • What about using some math to describe the
    number

7 4 2
100
101
102
2 100
4 101
7 102
18
Using Expanded Notation
  • We can use our expanded notation to figure the
    value of a number

19
A Note on Superscripts
  • Weve seen superscripts in expressions before
    today. In math, they are used to indicate an
    exponent in an expression

xy
20
A 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
21
A 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
22
Thinking 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

23
Binary Placeholders
  • Lets deconstruct 10112

24
Binary Placeholders
  • Now, lets use exponents

1 0 1 1
20
21
22
23
25
Converting 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
26
Converting 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
27
Converting 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
28
Converting 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.

29
Converting Base-10 to Base-2
  • STEP ONE Draw a table with three columns. Label
    the last two columns quotient and remainder,
    respectively.

30
Converting 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.

31
Converting 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.

32
Converting 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.

33
Converting Base-10 to Base-2
  • 2310 101112

34
Checking 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

35
Groups 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.

36
Introducing 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.

37
Introducing 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
    ...

38
Octal Digits
Click to Return to the Last Slide Viewed
39
Octal Placeholders
Ones
Placeholder Name
Eights
Sixty-Fours
642
84
11
Value
Exponential Expression
822
814
801
40
Converting 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
41
Converting 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
42
Converting 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
43
Converting 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
44
Converting Base-10 to Base-8
  • To convert Base-10 to Base-8, well use
    successive division
  • Our new problem483210 ?8

45
Converting Base-10 to Base-8
  • STEP ONE Draw a table with three columns. Label
    the last two columns quotient and remainder,
    respectively.

46
Converting 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
47
Converting 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
48
Converting 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.

49
Converting Base-10 to Base-8
  • 483210 113408

50
Base-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?

51
Hexadecimal Numbering
  • There are new symbols for the Base-16 equivalents
    of the Base-10 numbers 10, 11, 12, 14 and 15.
    Examine

52
Converting Base-10 to Base-16
  • To convert Base-10 to Base-16, well again use
    successive division
  • Our new problem21410 ?16

53
Converting Base-10 to Base-16
  • STEP ONE Draw a table with three columns. Label
    the last two columns quotient and remainder,
    respectively.

54
Converting 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.

55
Converting 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.

56
Converting Base-10 to Base-16
  • STEP FOUR Convert all remainders to their hex
    equivalents.

57
Converting 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
58
Binary Arithmetic
  • Computer processing requires a little more
    capability in binary math, notably arithmetic.
  • Lets consider addition and subtraction

59
Binary Addition
  • Just a few combinations are possible
  • 02 02 02
  • 02 12 12
  • 12 02 12
  • What about 12 12?

60
Binary 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

61
Binary Addition
1
1
11102 10112
1410
1110
1
0
0
2510
2
62
Binary Subtraction
  • Subtraction in base two is similar to addition
  • 112 112 002
  • 112 002 112
  • 102 002 102
  • What about 102 - 12?

63
Binary 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.

64
Binary Addition
1
1
1
001100112 -000101102
0
0
5110
2210
1
0
1
1
1
0
0
0
2910
2
65
Binary 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

66
Negative 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

67
Negative 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.

68
Negative 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

69
Sign/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

70
Twos 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.

71
Twos 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

72
Twos 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.

73
What 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

74
Binary 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.

75
Binary 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.

76
Scientific 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.

77
Switch 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

78
Interpreting 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.

79
Interpreting 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?

80
One 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

81
Fractional 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

82
Left Side of a Decimal Number
  • Okay, our number is 5.75
  • To convert the 510 to ?2
  • Use successive division

510 1012
83
Right 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.

84
Extraction
  • STEP ONE Draw a table with two columns. Label
    the columns for the expression and the
    extraction, respectively.

85
Extraction
  • STEP TWO Write down your original number and
    multiply it by 2. Put the whole number part in
    the Extraction column.

86
Extraction
  • 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.

87
Extraction
  • STEP FOUR Read the extraction column, from top
    to bottom. This number represents your binary
    equivalent.

0.7510 1102
88
Both 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

89
Lets 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

90
Converting
  • Remember our algorithm left side by successive
    division, right side by successive multiplication

91
Left Side of 2.54
  • 2 by successive division

Reading the remainders from bottom to top, 210
102
92
Right 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

93
Lets 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

94
Right 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.

95
Okay, 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

96
Back 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?

97
The 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.

98
Storing 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!

99
Last 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

100
16 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.

101
One 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

102
16 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

103
Normalizing
  • 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.

104
Normalizing
  • 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

105
Normalizing 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

106
Algorithm
  • 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

107
Algorithm (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

108
Algorithm (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
109
Questions?
Write a Comment
User Comments (0)
About PowerShow.com