Number Systems and Binary Math

Slides:



Advertisements
Similar presentations
COMP 4—Power Tools for the Mind 1 What’s in the box? Representing concepts, Part 1 What we’ll cover for Part 1 : Representing concepts in a computer –Five.
Advertisements

Digital Fundamentals Floyd Chapter 2 Tenth Edition
Computer Structures Lecture 2: Working with 0’s and 1’s.
Connecting with Computer Science, 2e
Assembly Language and Computer Architecture Using C++ and Java
Level ISA3: Information Representation
Signed Numbers.
Assembly Language and Computer Architecture Using C++ and Java
1 Binary Arithmetic, Subtraction The rules for binary arithmetic are: = 0, carry = = 1, carry = = 1, carry = = 0, carry =
Data Representation in Computers
The Binary Number System
1 Binary Numbers Again Recall that N binary digits (N bits) can represent unsigned integers from 0 to 2 N bits = 0 to 15 8 bits = 0 to bits.
Chapter 1 1 Number Systems. 2 Objectives  Understand why computers use binary (Base-2) numbering.  Understand how to convert Base-2 numbers to Base-
Binary Arithmetic Math For Computers.
Building Adders & Sub tractors Dr Ahmed Telba. Introducing adder circuits Adder circuits are essential inside microprocessors as part of the ALU, or arithmetic.
Binary Number Systems.
Topic 4 Computer Mathematics and Logic
Connecting with Computer Science 2 Objectives Learn why numbering systems are important to understand Refresh your knowledge of powers of numbers Learn.
Data Representation Number Systems.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Fundamentals Tenth Edition Floyd.
Simple Data Type Representation and conversion of numbers
CSCI N301: Fundamental Computer Science Concepts Copyright ©2004  Department of Computer & Information Science The Switch, Part 2.
Lecture for Week Spring.  Numbers can be represented in many ways. We are familiar with the decimal system since it is most widely used in everyday.
Numbering systems.
Positional Number Systems
Copyright © Cengage Learning. All rights reserved. CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS THE LOGIC OF COMPOUND STATEMENTS.
Numeral Systems Subjects: Numeral System Positional systems Decimal
Computer Arithmetic Nizamettin AYDIN
Numeration Systems Introduction to Binary, Octal, and Hexadecimal.
CSCI N301: Fundamental Computer Science Concepts Copyright ©2006  Department of Computer & Information Science The Switch, Part One.
1 Digital Technology and Computer Fundamentals Chapter 1 Data Representation and Numbering Systems.
IT253: Computer Organization
Lecture Overview Introduction Positional Numbering System
Data Representation in Computer Systems. 2 Objectives Understand the fundamentals of numerical data representation and manipulation in digital computers.
Chapter 2 Binary Values and Number Systems. 2 2 Natural Numbers Zero and any number obtained by repeatedly adding one to it. Examples: 100, 0, 45645,
©Brooks/Cole, 2003 Chapter 3 Number Representation.
Cosc 2150: Computer Organization Chapter 2 Part 1 Integers addition and subtraction.
BR 8/99 Binary Numbers Again Recall than N binary digits (N bits) can represent unsigned integers from 0 to 2 N bits = 0 to 15 8 bits = 0 to 255.
CSC 221 Computer Organization and Assembly Language
1 Data Representation Characters, Integers and Real Numbers Binary Number System Octal Number System Hexadecimal Number System Powered by DeSiaMore.
1 Representation of Data within the Computer Oct., 1999(Revised 2001 Oct)
Computer Math CPS120: Lecture 3. Binary computers have storage units called binary digits or bits: Low Voltage = 0 High Voltage = 1 all bits have 0 or.
EEL 3801C EEL 3801 Part I Computing Basics. EEL 3801C Data Representation Digital computers are binary in nature. They operate only on 0’s and 1’s. Everything.
How a Computer Processes Information. Java – Numbering Systems OBJECTIVE - Introduction to Numbering Systems and their relation to Computer Problems Review.
Computer Math CPS120 Introduction to Computer Science Lecture 4.
AEEE2031 Data Representation and Numbering Systems.
Number Systems & Operations
1 2.1 Introduction A bit is the most basic unit of information in a computer. –It is a state of “on” or “off” in a digital circuit. –Sometimes these states.
Computer Science Introduction to the Number Base Unit Adapted from Slides by John Owen Computer Science Instructor, Rockport-Fulton High School, Rockport,
Number Systems by Dr. Amin Danial Asham. References  Programmable Controllers- Theory and Implementation, 2nd Edition, L.A. Bryan and E.A. Bryan.
Digital Fundamentals Tenth Edition Floyd Chapter 2 © 2008 Pearson Education.
CS1Q Computer Systems Lecture 2 Simon Gay. Lecture 2CS1Q Computer Systems - Simon Gay2 Binary Numbers We’ll look at some details of the representation.
Introduction To Number Systems Binary System M. AL-Towaileb1.
Chapter 1 Number Systems Digital Electronics. Topics discussed in last lecture Digital systems Advantages of using digital signals over analog. Disadvantages.
©Brooks/Cole, 2003 Chapter 3 Number Representation.
Computer Math CPS120 Introduction to Computer Science Lecture 7.
Number Systems. The position of each digit in a weighted number system is assigned a weight based on the base or radix of the system. The radix of decimal.
Binary Numbers The arithmetic used by computers differs in some ways from that used by people. Computers perform operations on numbers with finite and.
Dr. ClincyLecture 2 Slide 1 CS Chapter 2 (1 of 5) Dr. Clincy Professor of CS Note: Do not study chapter 2’s appendix (the topics will be covered.
Binary & Hex Review.
Binary Numbers The arithmetic used by computers differs in some ways from that used by people. Computers perform operations on numbers with finite and.
Digital Logic & Design Dr. Waseem Ikram Lecture 02.
COMPUTING FUNDAMENTALS
Tools of Web Development 1: Module A: Numbering Systems
IT 0213: INTRODUCTION TO COMPUTER ARCHITECTURE
Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter) CSC 370 (Blum)
Digital Logic & Design Lecture 02.
Binary to Decimal Conversion
Binary & Hex Review.
Introduction To Number Systems
Presentation transcript:

Number Systems and Binary Math

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.

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

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.

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

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

Numbering Systems If you had 10 sheep, you made 10 marks To figure the answer to this question, let’s 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

Numbering Systems Later, there were advancements in tally math, using special symbols for special numbers. Instead of 10 marks for 10 sheep, let’s 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 = X

Positional Numbering Systems Wonderful advancement over tally math. Let’s 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

3 7 Place Values Consider the number 37… The 7 stands for 7 (it’s count value) ones (it’s positional value). Together, 7 times 1 is 7

3 7 Place Values Consider the number 37… The 3 stands for 3 (it’s count value) tens (it’s positional value). Together, 3 times 10 is thirty

3 7 Place Values Consider the number 37… Total value: 7 (7 * 1, from the ones position) and thirty (3 * 10, from the 10 position) is 37!

Place Values 3 7 “Tens” “Ones” 3 * 10 7 * 1

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

0 9 1 0 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

7 4 2 Base-10 (Decimal) 7 * 100 4 * 10 2 * 1 “Hundreds” “Tens” “Ones” Interpreting a multiple digit number simply means to expand its notation, and write it out by each positional value: 7 4 2 “Hundreds” “Tens” “Ones” 7 * 100 4 * 10 2 * 1

Base-10 (Decimal) What about using some math to describe the number: 7 4 2 102 101 100 7 * 102 4 * 101 2 * 100

Using Expanded Notation We can use our expanded notation to figure the value of a number: 7*102 = 7*100 = 700 4*101 = 4*10 = 40 2*100 = 2*1 = 2 = 74210

xy A Note on Superscripts We’ve seen superscripts in expressions before today. In math, they are used to indicate an exponent in an expression: xy

A Note on Subscripts Let’s 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

74210 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

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

1 0 1 1 Binary Placeholders Let’s deconstruct 10112: “Fours” “Twos” “Ones” “Fours” “Eights”

Binary Placeholders Now, let’s use exponents: 1 0 1 1 23 22 21 20

Converting Base-2 to Base-10 1 0 1 1 Let’s convert 10112. STEP 1: Find all switches that are turned “OFF”. Cross them out and bring down the zero. 23 22 21 20

Converting Base-2 to Base-10 1 0 1 1 STEP 2: For each placeholder turned “ON”, calculate its exponential expression. 23 22 21 20 8 2 1

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. 23 22 21 20 8 + + 2 + 1 = 1110

Converting from Base-10 to Base-2 Consider 2310. How can we translate this to its Base-2 equivalent? We’ll use successive division. Essentially, that means we’ll divide by 2 over and over and keep track of our remainders.

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

Converting Base-10 to Base-2 Q R 23/2 11 1 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.

Converting Base-10 to Base-2 Q R 23/2 11 1 11/2 5 5/2 2 2/2 1/2 STEP THREE: Take the quotient of the previous expression and divide it by two. Repeat until have 0 for a quotient.

Converting Base-10 to Base-2 Q R 23/2 11 1 11/2 5 5/2 2 2/2 1/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.

Converting Base-10 to Base-2 2310 = 101112 Q R 23/2 11 1 11/2 5 5/2 2 2/2 1/2

Checking the Results So.. 2310 = 101112! Let’s check our answer by reversing the process 101112 = (1 * 24) + (0 * 23 ) + ( 1 * 22 ) + (1 * 21) + (1 * 20) = 16 + 0 + 4 + 2 + 1 = 2310

Groups of Switches We have already seen that a single switch can’t 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.

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.

Introducing Octal The octal numbering system includes eight base digits, 0-7. After 7, the next placeholder to the right begins with a 1: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13 ...

Octal Digits Click to Return to the Last Slide Viewed Base-2 Base-8 000 001 1 010 2 011 3 100 4 101 5 110 6 111 7 Click to Return to the Last Slide Viewed

2 4 1 Octal Placeholders Number: Placeholder Name: “Ones” “Eights” “Sixty-Fours” Value: 64*2 8*4 1*1 Exponential Expression: 82*2 81*4 80*1

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 100 101 001 Click to See Octal Digits Table

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 100 101 001 2 1 4 5 1

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 5 2 100 011 101 010 000 Click to See Octal Digits Table

Converting Base-8 to Base-10 Multiply each octal digit by the exponential expression that represents its placeholder and then add the values: 2*83 = 2*512 = 1024 8 3*82 = 3*64 = 192 8 7*81 = 7*8 = 56 8 4*80 = 4*1 = 4 8 = 127610

Converting Base-10 to Base-8 To convert Base-10 to Base-8, we’ll use successive division … Our new problem: 483210 = ?8

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

Converting Base-10 to Base-8 Q R 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

Converting Base-10 to Base-8 Q R STEP THREE: Take the quotient of the previous expression and divide it by eight. Repeat until you’ve have 0 for a quotient. 4832/8 604 604/8 75 4 75/8 9 3 9/8 1 1/8 1

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. Q R 4832/8 604 604/8 75 4 75/8 9 3 9/8 1 1/8

Converting Base-10 to Base-8 483210 = 113408 Q R 4832/8 604 604/8 75 4 75/8 9 3 9/8 1 1/8

Base-16 What’s 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?

Hexadecimal Numbering There are new symbols for the Base-16 equivalents of the Base-10 numbers 10, 11, 12, 14 and 15. Examine: DEC 1 2 3 4 5 6 7 HEX 8 9 10 11 12 13 14 15 A B C D E F

Converting Base-10 to Base-16 To convert Base-10 to Base-16, we’ll again use successive division … Our new problem: 21410 = ?16

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

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. Q R 214/16 13 6

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. Q R 214/16 13 6 13/16

Converting Base-10 to Base-16 STEP FOUR: Convert all remainders to their hex equivalents. Q R 214/16 13 6 = 6 13/16 13 = D

Converting Base-10 to Base-16 STEP FIVE: Read the numbers in the REMAINDER column from the bottom up to get your hex equivalent. Q R 214/16 13 6 = 6 13/16 13 = D 21410 = D616

Binary Arithmetic Computer processing requires a little more capability in binary math, notably arithmetic. Let’s consider addition and subtraction …

Binary Addition Just a few combinations are possible: 02 + 02 = 02 02 + 12 = 12 12 + 02 = 12 What about 12 + 12?

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…

Binary Addition 1+ 1+ 11102 +10112 =1410 =1110 1 1 =2510 2

Binary Subtraction What about 102 - 12? Subtraction in base two is similar to addition 112 – 112 = 002 112 – 002 = 112 102 – 002 = 102 What about 102 - 12?

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.

Binary Addition 1 001100112 -000101102 1 1 =5110 =2210 1 1 1 1 =2910 2

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

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 …

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.

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

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 …

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.

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 Example: –101 = 010 + 1 = 011

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 2’s complement, and then add normally.

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 …

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.

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.

Scientific Notation +/- M * B+/-E Let’s 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.

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 …

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.”

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?

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 …

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). Let’s break the problem into two parts, the left hand side (of the decimal point) and the right hand side …

Left Side of a Decimal Number Okay, our number is 5.75 To convert the 510 to ?2: Use successive division Division Remainder 5 / 2 = 2 1 2 / 2 = 1 1 / 2 = 0 510 = 1012

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….

Extraction STEP ONE: Draw a table with two columns. Label the columns for the expression and the extraction, respectively. Expression Extract.

Extraction STEP TWO: Write down your original number and multiply it by 2. Put the whole number part in the Extraction column. Expression Extract. 0.75 * 2 = 1.50 1

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. Expression Extract. 0.75 * 2 = 1.50 1 0.50 * 2 = 1.00 0.00 * 2 = 0.00

Extraction STEP FOUR: Read the extraction column, from top to bottom. This number represents your binary equivalent. Expression Extract. 0.75 * 2 = 1.50 1 0.50 * 2 = 1.00 0.00 * 2 = 0.00 0.7510 = 1102

Both Sides Now 5.7510 = 101.1102 This isn’t 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

Let’s Try One More … Let’s try another problem. This time, with a number that doesn’t convert to binary as easily … Let’s try this number: 2.5410 = ?2

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

Reading the remainders from bottom to top, 210 = 102 Left Side of 2.54 2 by successive division Division Remainder 2/2 = 1 1/0 = 0 1 Reading the remainders from bottom to top, 210 = 102

Right Side of 2.54 Reading the extraction column, top to bottom: .5410 = 1000101002 What would have if we kept extracting, past .24 * 2? Let’s convert our number back to Base-10 to see what happens … Division Extraction .54 * 2 = 1.08 1 .08 * 2 = 0.16 .16 * 2 = 0.32 .32 * 2 = 0.64 .64 * 2 = 1.28 .28 * 2 = 0.56 .56 * 2 = 1.12 .12 * 2 = 0.24 .24 * 2 = 0.48

Let’s 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…

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. Doesn’t 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.

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: 2 –1 1/21 ½ .5 2 –2 1/22 ¼ .25 2 –3 1/23 1/8 .125 2-4 1/24 1/16 .0625

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?

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….

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!

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 …

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.

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 isn’t 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

16 Bit: More What happened to the base? We don’t have to store that, because it will always be base two, the binary base from the world of switches Don’t need to store the decimal point, because the encoding scheme will guarantee it is placed correctly when decoded There’s 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

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.

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

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

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

Algorithm (con’t) Put number in normalized form 10.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

Algorithm (con’t) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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

Questions?