Presentation is loading. Please wait.

Presentation is loading. Please wait.

Binary Arithmetic Math For Computers.

Similar presentations


Presentation on theme: "Binary Arithmetic Math For Computers."— Presentation transcript:

1 Binary Arithmetic Math For Computers

2 Huh? Binary numbers are NUMBERS
That means you can add, subtract, multiply, and divide 2 + 2 = 4 In Binary: = 100 So you COULD just convert all numbers to decimal, do the math, and then convert the answer back… But I don’t care about the math I want you to understand how a computer does it!

3 Addition Similar to addition of large decimal numbers
You need to “carry” when a number gets too large for a single digit In binary, that’s = 10 (or 0, carry a 1) If you have = 11 (or 1, carry a 1) carried bits 11_

4 Addition Practice Take a few minutes to try them (answers in the PowerPoint Notes) = , = , = , = , =

5 Overflow = The answer is more than 1 byte large A computer typically will make it DROP THE EXTRA BIT ON THE LEFT The computer’s answer: 11 (binary) or 3 (decimal) This is called an overflow error Sometimes overflow behavior is undefined (unpredictable)

6 Why overflow happens A computer’s processor stores information in something called a register. Registers have a limited space – they can only store a certain number of bits. If a processor does a calculation and the answer exceeds the capacity of the register, then the extra bits are dropped Modern registers are usually 16 or 32 bits, but for this class we’ll only use 8 bits.

7 Addition Practice Pt. 2 Do the math, but give the answer an 8-bit computer would give (answers in the PowerPoint Notes) 1001, , 0 ,

8 Negative Numbers for Computers
A computer needs a way to represent negative numbers (there’s no “negative sign” in the comp) One Idea: Use one of the bits to indicate the sign of the number, instead of using it as a digit

9 Sign Bit (the bad way) So the 1st bit of a number indicates it’s sign
Examples: is 2 is -2

10 Problem with sign bit system
2 zeros is a waste ( and are both zero) Computer processors can’t subtract without special instructions We need a way to subtract by adding! Huh?

11 Twos Complement Consider this idea: a binary digit “place value” could be negative! So the above number is actually 3 (the positive bits) minus 8 = -5 1000 in the above system actually represents the decimal number -8 The example above is 4 bits. Most problems for this class will assume 8 bits. negative eights fours twos ones 1

12 Twos Complement cont. REALLY IMPORTANT: Notice that with both negative number systems you need to know the number of total bits you are going to use! We’ll assume 8 bits for simplicity. What is the value of the “negative place”? What is the new range of numbers? (Hint: It’s not 0 – 255 anymore) Value of negative place is -128, range of numbers is now -128 to 127

13 Calculating Twos Complement
Example: -1 in (8-bit) twos complement is Still confused? Remember, everything is the same except for a negative place value! = -1 Btw, a “normal” binary number (where = 255) is called “unsigned” -128 64 32 16 8 4 2 1

14 Calculating Twos Complement Pt. 2
Shortcut: Convert the positive binary number, switch all the bits (0s become 1s, 1s become 0s), then add 1 It only doesn’t work for -128 (no positive number) Try some! Set 1 -127 -23 -8 -100 Set 2 -5 -117 -52 -12 Set 1: , , , Set 2: , , ,

15 Actually Subtracting, finally
Once you’ve got Twos Complement figured out, subtracting is IDENTICAL TO ADDING (but now using our twos complement numbers) Example: Decimal Binary: 2s complement of 20: Overflow bit is dropped, as usual is… 80 So this 2s complement system USES overflow

16 Practice Excercises Do in Binary (know how to do decimal conversions, 2s complement conversions, and binary addition) Set 1 12 – 2 66 – 30 35 – 44 Set 2 2 - 1 12 – 2 = , 66 – 30 = , 35 – 44 = 50 – 10 = , 2 – 1 = , 127 – 128 =

17 Just to be clear: If you have a binary number like 1101 0110
It could be 214, or -42 There’s no way to tell if it’s negative just by looking at it! Assume it is positive, unless the problem states otherwise.

18 Multiplication & Division
We’ll just talk about multiplying and dividing by the powers of 2 This is called “shifting” Just like when you multiply or divide by 10, you just shift the decimal point In binary, when you multiply or divide by 2, you shift the “binary point” 4 * 2 = 8 100 * 10 = 1000 4 / 2 = 2 100 / 10 = 10

19 Shifting Details Multiplying can also be called left-shifting
Dividing: right-shifting Left-Shifting can give you the overflow error * 10 = For 2s complement negative numbers, overflow will give really weird results Again, the leftmost bit is dropped Right-shift is DIFFERENT FOR TWOS COMPLEMENT vs. unsigned binary numbers Unsigned: shift in a 0 for the leftmost bit 2s comp: shift in a COPY of the leftmost bit

20 These two 1s are dropped and disappear due to overflow
Shifting Diagram Left-Shifting by 2 (multiply by 4) Right-Shifting by 2 (divide by 4) These 1s are dropped! Twos Complement These two 1s are dropped and disappear due to overflow Unsigned Two copies of the 1 were shifted in on the left. If the leftmost bit was 0, two 0s would have been shifted in. 0s are always shifted in for unsigned numbers

21 More Shifting Examples
Unsigned numbers * 10 = (overflow) * 100 = (overflow) * 1000 = / = / 10 = / 100 = (?????) 19 / 4 = 4 So when you divide, you lose precision (the computer will drop bits that go off the right side – this means the answer is always rounded down towards -∞) Twos Complement * 10 = * 10 = (overflow!) -127 * 2 = 2…? / 100 = Instead of 0s, 1s were shifted in on the left because that was the leftmost bit of the original byte

22 Fancy Shifting Animation: Multiplication
View this slide in a slide show! Fancy Shifting Animation: Multiplication Also called left-shifting (look at the animation) This red box is a register 0 0 0 Lets put some bits into the register (8 bits) And the bits that went out of the register are dropped because of overflow Now the processor gets an instruction to multiply this number by 8 So the bits shift to the left by 3 places (because 8 is the 3rd power of 2) And the new empty spaces are filled with zeros Notice that we won’t get the correct answer, because of overflow. If the original number was smaller and had three zeros on the left, then the overflow would have only dropped zeros, and the answer would be accurate.

23 Negative Number Multiplication Overflow
View this slide in a slide show! Negative Number Multiplication Overflow For Negative numbers, be aware that overflow will yield some strange results The computer erases the bit that overflowed and puts in a zero on the right, like it’s supposed to. But the new number is , which equals 90! This happened because the lower limit of 8-bit twos complement negative numbers is However, -83 * 2 would have gone below that. Let’s multiply by 2. This means we left-shift by 1. Take this 8-bit negative binary number: = -83 (or positive 173)

24 Fancy Shifting Animation: Division
View this slide in a slide show! Fancy Shifting Animation: Division Also called right-shifting (look at the animation) 0 0 1 1 The computer drops the bits that went out of the register to the right. If the original number was positive (171), then the computer will put zeros on the left. The final answer is: 42. Notice that this isn’t a totally accurate answer (it should be 42.75) Because the computer dropped some bits we lost precision. Basically, the computer will always round down. Dividing by powers of 2 is very similar to multiplying. Here, we have our original binary number in the register. ( = 171 OR -85) If the original number was negative (-85), then the only difference would be that ones come in on the left side instead of zeros. This time our answer is -22. It should be , but the computer rounded down again. Just remember that when you round a negative number DOWN, it becomes more negative! Let’s try dividing by 4. When that happens, the number in the register will shift to the right by 2 places. (4 is the 2nd power of 2)

25 Microsoft Calculator It’s actually useful for this binary stuff
Use it to double-check and test yourself Put it into Scientific mode (under view) and you’ll see buttons for decimal, binary, hex, and octal

26 Calculator Cont. If you click on the decimal (Dec) button and then enter a negative decimal number, then click the Binary (Bin) button, you’ll see that negative number in Twos Complement form If you do any arithmetic in Binary, and the Byte button is activated, you’ll see the “computer’s answer” (overflow) You can then click over to Decimal to see what that number would be

27 Shifting Excercises Convert to Binary, then give the computer’s answers Use Calc for the initial conversions and answer-checking Btw, I use an asterisk (*) for multiplication -50 * 2 12 * 4 78 * 4 -100 * 2 10 / 2 -120 / 8 12 / 8 -12 / 4

28 Restating the Obvious The MATH ISN’T IMPORTANT. I can get the answers from a calculator. Understanding these processes gives you an idea of how the computer works. If the only thing you understand is that computers are actually pretty simple machines that need lots of instructions to work properly, then you’re doing pretty good (ok, you won’t so well on the test if you can’t do the calculations, but at least you have the general idea)


Download ppt "Binary Arithmetic Math For Computers."

Similar presentations


Ads by Google