EE 109 Unit 6 Binary Arithmetic

Similar documents
Semester Transition Point. EE 109 Unit 11 Binary Arithmetic. Binary Arithmetic ARITHMETIC

2.1. Unit 2. Integer Operations (Arithmetic, Overflow, Bitwise Logic, Shifting)

10.1. Unit 10. Signed Representation Systems Binary Arithmetic

SIGNED AND UNSIGNED SYSTEMS

Binary Addition. Add the binary numbers and and show the equivalent decimal addition.

Number System. Introduction. Decimal Numbers

CO Computer Architecture and Programming Languages CAPL. Lecture 9

BINARY SYSTEM. Binary system is used in digital systems because it is:

Digital Arithmetic. Digital Arithmetic: Operations and Circuits Dr. Farahmand

CHAPTER V NUMBER SYSTEMS AND ARITHMETIC

1010 2?= ?= CS 64 Lecture 2 Data Representation. Decimal Numbers: Base 10. Reading: FLD Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Chapter 10 Binary Arithmetics

Chapter 3: part 3 Binary Subtraction

Arithmetic Processing

Decimal & Binary Representation Systems. Decimal & Binary Representation Systems

Lecture Topics. Announcements. Today: Integer Arithmetic (P&H ) Next: continued. Consulting hours. Introduction to Sim. Milestone #1 (due 1/26)

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS

CS 64 Week 1 Lecture 1. Kyle Dewey

Number Systems. Readings: , Problem: Implement simple pocket calculator Need: Display, adders & subtractors, inputs

CHAPTER 6 ARITHMETIC, LOGIC INSTRUCTIONS, AND PROGRAMS

Lecture 8: Addition, Multiplication & Division

CHW 261: Logic Design

COMPUTER ARITHMETIC (Part 1)

Digital Fundamentals. CHAPTER 2 Number Systems, Operations, and Codes

Basic Definition INTEGER DATA. Unsigned Binary and Binary-Coded Decimal. BCD: Binary-Coded Decimal

Chapter 3: Arithmetic for Computers

CS/COE0447: Computer Organization

CS/COE0447: Computer Organization

MULTIPLICATION TECHNIQUES

Harry H. Porter, 2006

Number Systems Base r

Microcomputers. Outline. Number Systems and Digital Logic Review

Chapter 4 Arithmetic Functions

Logic Circuits I ECE 1411 Thursday 4:45pm-7:20pm. Nathan Pihlstrom.

Chapter 1. Digital Systems and Binary Numbers

Experiment 7 Arithmetic Circuits Design and Implementation

Arithmetic Operations on Binary Numbers

ELECTRICAL AND COMPUTER ENGINEERING DEPARTMENT, OAKLAND UNIVERSITY ECE-2700: Digital Logic Design Winter Notes - Unit 4. hundreds.

Chapter 5: Computer Arithmetic. In this chapter you will learn about:

COMP Overview of Tutorial #2

A complement number system is used to represent positive and negative integers. A complement number system is based on a fixed length representation

INF2270 Spring Philipp Häfliger. Lecture 4: Signed Binaries and Arithmetic

Learning Objectives. Binary over Decimal. In this chapter you will learn about:

ECE 30 Introduction to Computer Engineering

ECE/Comp Sci 352 Digital Systems Fundamentals. Charles R. Kime Section 2 Fall Logic and Computer Design Fundamentals

CS & IT Conversions. Magnitude 10,000 1,

Arithmetic Operations

D I G I T A L C I R C U I T S E E

Computer Organization

ELECTRICAL AND COMPUTER ENGINEERING DEPARTMENT, OAKLAND UNIVERSITY ECE-278: Digital Logic Design Fall Notes - Unit 4. hundreds.

COMP 122/L Lecture 2. Kyle Dewey

EE292: Fundamentals of ECE

Digital Systems and Binary Numbers

Digital Fundamentals. Lab 6 2 s Complement / Digital Calculator

Chapter 1 Review of Number Systems

Chapter 10 - Computer Arithmetic

Binary Addition & Subtraction. Unsigned and Sign & Magnitude numbers

COMP 303 Computer Architecture Lecture 6

CS 121 Digital Logic Design. Chapter 1. Teacher Assistant. Hadeel Al-Ateeq

Arithmetic and Logical Operations

Chapter 2: Number Systems

carry in carry 1101 carry carry

Inf2C - Computer Systems Lecture 2 Data Representation

Binary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T.

Positional Number System

Number Systems and Computer Arithmetic

Chapter 5: Computer Arithmetic

COE 202: Digital Logic Design Number Systems Part 2. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

Number representations

Part 2,Number Systems Questions

Fundamentals of Programming Session 2

Goals for this Week. CSC 2400: Computer Systems. Bits, Bytes and Data Types. Binary number system. Finite representations of binary integers

2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).

MC1601 Computer Organization

Topic Notes: Bits and Bytes and Numbers

Computer (Literacy) Skills. Number representations and memory. Lubomír Bulej KDSS MFF UK

Module 2: Computer Arithmetic

Learning Outcomes. Spiral 2-2. Digital System Design DATAPATH COMPONENTS

World Inside a Computer is Binary

T02 Tutorial Slides for Week 2

Binary Systems and Codes

Operations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions

Digital Fundamentals

Number Systems. Decimal numbers. Binary numbers. Chapter 1 <1> 8's column. 1000's column. 2's column. 4's column

Topic Notes: Bits and Bytes and Numbers

Advanced Computer Architecture-CS501

Korea University of Technology and Education

Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as:

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

Chapter 2 Number System

ECE331: Hardware Organization and Design

Lecture 6: Signed Numbers & Arithmetic Circuits. BCD (Binary Coded Decimal) Points Addressed in this Lecture

ET355 Microprocessors Thursday 6:00 pm 10:20 pm

*Instruction Matters: Purdue Academic Course Transformation. Introduction to Digital System Design. Module 4 Arithmetic and Computer Logic Circuits

UNIT IV: DATA PATH DESIGN

Basic Arithmetic (adding and subtracting)

CS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29

Math in MIPS. Subtracting a binary number from another binary number also bears an uncanny resemblance to the way it s done in decimal.

More complicated than addition. Let's look at 3 versions based on grade school algorithm (multiplicand) More time and more area

Transcription:

EE 109 Unit 6 Binary Arithmetic 1

2 Semester Transition Point At this point we are going to start to transition in our class to look more at the hardware organization and the low-level software that is produced by compilers This is where HW really meets SW We need to finish off some topics of how the HW carries out operations on numbers

ARITHMETIC 3

4 Binary Arithmetic Can perform all arithmetic operations (+,-,*, ) on binary numbers Can use same methods as in decimal Still use carries and borrows, etc. Only now we carry when sum is 2 or more rather than 10 or more (decimal) We borrow 2 s not 10 s from other columns Easiest method is to add bits in your head in decimal (1+1 = 2) then convert the answer to binary (2 10 = 10 2 )

5 Binary Addition In decimal addition we carry when the sum is 10 or more In binary addition we carry when the sum is 2 or more Add bits in binary to produce a sum bit and a carry bit 0 0 1 1 1 + 0 + 1 + 0 + 1 00 01 01 10 no need to carry sum bit no need to carry sum bit no need to carry sum bit carry 1 into next column of bits sum bit

6 Binary Addition & Subtraction 1 1 1 0 1 1 1 (7) + 0 0 1 1 (3) 1 0 1 0 (10) 8 4 2 1 0 0 1 10 1 10-0 1 0 1 0 1 0 1 8 4 2 1 (10) (5) (5)

7 Binary Addition 110 0110 (6) + 0111 (7) 1101 (13) 8 4 2 1

8 Binary Addition 0 0110 (6) + 0111 (7) 1101 (13) 0 + 1 01 carry bit sum bit

9 Binary Addition 10 0 0110 (6) 1 + 0111 (7) + 1 1101 (13) 10 carry bit sum bit

10 Binary Addition 110 1 0110 (6) 1 + 0111 (7) + 1 1101 (13) 11 carry bit 1+1+1 = 3 10 = 11 2 sum bit

11 Binary Addition 110 1 0110 (6) 0 + 0111 (7) + 0 1101 (13) 01 carry bit sum bit

12 Hexadecimal Arithmetic Same style of operations Carry when sum is 16 or more, etc. 1 1 4 D 16 + B 5 16 13+5 = 18 10 = 1 2 16 16 1 1+4+11 = 16 10 = 1 0 16 16 1 1 0 2 16

13 "Taking the 2's complement" SUBTRACTION THE EASY WAY

14 Taking the Negative Given a number in signed magnitude or 2 s complement how do we find its negative (i.e. -1 * X) Signed Magnitude: Flip the sign bit 0110 = +6 => 1110 = -6 2 s complement: Take the 2 s complement 0110 = +6 => -6 = 1010 Operation defined as: 1. Flip/invert/not all the bits (1 s complement) 2. Add 1 and drop any carry (i.e. finish with the same # of bits as we start with)

15 Taking the 2 s Complement Invert (flip) each bit (take the 1 s complement) 1 s become 0 s 0 s become 1 s Add 1 (drop final carry-out, if any) -32 16 8 4 2 1 010011 101100 + 1 101101 Original number = +19 Bit flip is called the 1 s complement of a number Resulting number = -19 Important: Taking the 2 s complement is equivalent to taking the negative (negating)

16 Taking the 2 s Complement 1-32 16 8 4 2 1 2 101010 010101 + 1 010110 Original number = -22 Take the 2 s complement yields the negative of a number Resulting number = +22 0000 1111 + 1 0000 Original # = 0 Take the 2 s complement 2 s comp. of 0 is 0 101001 + 1 Taking the 2 s complement again yields the original number (the operation is symmetric) 101010 Back to original = -22 3 1000 0111 + 1 1000 Original # = -8 Take the 2 s complement Negative of -8 is -8 (i.e. no positive equivalent, but this is not a huge problem)

17 2 s Complement System Facts Normal binary place values but MSB has negative weight MSB determines sign of the number 0 = positive / 1 = negative Special Numbers 0 = All 0 s (00 00) -1 = All 1 s (11 11) Max Positive = 0 followed by all 1 s (011..11) Max Negative = 1 followed by all 0 s (100 00) To take the negative of a number (e.g. -7 => +7 or +2 => -2), requires taking the complement 2 s complement of a # is found by flipping bits and adding 1 1001 0110 + 1 0111 x = -7 Bit flip (1 s comp.) Add 1 -x = -(-7) = +7

ADDITION AND SUBTRACTION 18

19 2 s Complement Addition/Subtraction Addition Sign of the numbers do not matter Add column by column Drop any final carry-out Subtraction Any subtraction (A-B) can be converted to addition (A + -B) by taking the 2 s complement of B (A-B) becomes (A + 1 s comp. of B + 1) Drop any carry-out

20 2 s Complement Addition No matter the sign of the operands just add as normal Drop any extra carry out 0000 0000 0011 (3) 1101 (-3) + 0010 (2) 0101 (5) + 0010 (2) 1111 (-1) Drop final carry-out 1110 0011 (3) + 1110 (-2) 0001 (1) 1100 1101 (-3) + 1110 (-2) 1011 (-5)

21 Unsigned and Signed Addition Addition process is the same for both unsigned and signed numbers Add columns right to left Examples: 1 1 1001 + 0011 1100 If unsigned If signed (9) (3) (12) (-7) (3) (-4)

22 2 s Complement Subtraction Take the 2 s complement of the subtrahend and add to the original minuend Drop any extra carry out 0011 (+3) - 0010 (+2) 1101 (-3) - 1110 (-2) Drop final carry-out 1111_ 0011 1101 + 1 0001 1 s comp. of +2 Add 1 1_ 1101 0001 + 1 1111 1 s comp. of -2 Add 1

23 Unsigned and Signed Subtraction Subtraction process is the same for both unsigned and signed numbers Convert A B to A + Comp. of B Drop any final carry out Examples: 1100-0010 If unsigned If signed (12) (2) (-4) (2) 11_1_ 1100 1101 + 1 1010 A 1 s comp. of B Add 1 (10) (-6) If unsigned If signed

24 Important Note Almost all computers use 2's complement because The same addition and subtraction algorithm can be used on unsigned and 2's complement (signed) numbers Thus we only need one adder circuit (HW component) to perform operations on both unsigned and signed numbers

OVERFLOW 25

26 Overflow Overflow occurs when the result of an arithmetic operation is too large to be represented with the given number of bits Conditions and tests to determine overflow depend on sign

27 Unsigned Overflow Overflow occurs when you cross this discontinuity +14 1110 +15 1111 0 0000 0001 +1 0010 +2 10 + 7 = 17 +12 +13 1101 1100 Plus 7 0011 0100 +3 +4 With 4-bit unsigned numbers we can only represent 0 15. Thus, we say overflow has occurred. +11 1011 +10 1010 10 1001 0111 0101 0110 +6 +5 +9 1000 +8 +7

28 2 s Complement Overflow 0 5 + 7 = +12-6 + -4 = -10 With 4-bit 2 s complement numbers we can only represent -8 to +7. Thus, we say overflow has occurred. -4-3 -5-2 1101 1100 1011-6 -1 1110 1010-7 1111 1001 0000 1000-8 +1 0001 +2 0010 0011 +3 0100 +4 0101 +5 0110 0111 +6 +7 Overflow occurs when you cross this discontinuity

29 Overflow in Addition Overflow occurs when the result of the addition cannot be represented with the given number of bits. Tests for overflow: Unsigned: if Cout = 1 Signed: if p + p = n or n + n = p 1 1 1101 + 0100 0001 If unsigned (13) (4) (17) If signed (-3) (4) (+1) 0 1 0110 + 0101 1011 If unsigned (6) (5) (11) If signed (6) (5) (-5) Overflow Cout = 1 No Overflow n + p No Overflow Cout = 0 Overflow p + p = n

30 Overflow in Subtraction Overflow occurs when the result of the subtraction cannot be represented with the given number of bits. Tests for overflow: Unsigned: if Cout = 0 Signed: if addition is p + p = n or n + n = p 0111-1000 If unsigned If signed (7) (8) (-1) (7) (-8) (15) Desired Results 0111_ 0111 0111 + 1 1111 A 1 s comp. of B Add 1 (15) (-1) If unsigned Overflow Cout = 0 If signed Overflow p + p = n

31 TRANSLATING SIGNED OR UNSIGNED HEXADECIMAL

32 Translating Hexadecimal Hex place values (16 2, 16 1, 16 0 ) can ONLY be used if the number is positive. If hex represents unsigned binary 1. Apply hex place values B2 hex = 11*16 1 + 2*16 0 = 178 10 If hex represents signed value (2 s comp.) 1. Determine the sign by looking at the underlying MSB 2. If pos., apply hex place values (as if it were unsigned) 3. If neg., take the 16 s complement and apply hex place values to find the neg. number s magnitude Hex Binary Sign 0 = 0000 = Pos. 1 = 0001 = Pos. 2 = 0010 = Pos. 3 = 0011 = Pos. 4 = 0100 = Pos. 5 = 0101 = Pos. 6 = 0110 = Pos. 7 = 0111 = Pos. 8 = 1000 = Neg. 9 = 1001 = Neg. A = 1010 = Neg. B = 1011 = Neg. C = 1100 = Neg. D = 1101 = Neg. E = 1110 = Neg. F = 1111 = Neg.

33 Taking the 16 s Complement Taking the 2 s complement of a binary number yields its negative and is accomplished by take the bit flip and adding 1 Taking the 16 s complement of a hex number yields its negative and is accomplished by subtracting each digit from 15 10 (F 16 ) complement and adding 1 15 s complement is found by subtracting each digit of the hex number from F 16 Original value B2: 16 s comp. of B2: FF - B2 4D + 1 4E Subtract each digit from F Add 1 16 s comp. of B2

34 Translating Hexadecimal Given 6C hex If it is unsigned, apply hex place values 6C hex = 6*16 1 + 12*16 0 = 108 10 If it is signed Determine the sign by looking at MSD 0-7 hex has a 0 in the MSB [i.e. positive] 8-F hex has a 1 in the MSB [i.e. negative] Thus, 6C (start with 6 which has a 0 in the MSB is positive) Since it is positive, apply hex place values 6C hex = 6*16 1 + 12*16 0 = 108 10

35 Translating Hexadecimal Given B2 hex If it is unsigned B2 hex = 11*16 1 + 2*16 0 = 178 10 If it is signed Determine the sign: MSD = B thus negative [i.e. (- ) ] Take the 16 s complement and apply hex place values to find the neg. number s magnitude

36 Finding the Value of Hex Numbers 8A hex representing a signed (2 s comp.) value Step 1: Determine the sign: Neg. Step 2: Take the 16 s comp. to find magnitude FF - 8A 75 + 1 76 Step 3: Apply hex place values (76 16 = +118 10 ) Step 4: Final value: B2 hex = -118 10 7C hex representing a signed (2 s comp.) value Step 1: Determine the sign: Pos. Step 2: Apply hex place values (7C 16 = +124 10 ) 7C hex representing an unsigned value = +124 10

37 Hex Addition and Overflow Same rules as in binary Add left to right Drop any carry (carry occurs when sum > F 16 ) Same addition overflow rules Unsigned: Check if final Cout = 1 Signed: Check signs of inputs and result 1 1 7AC5 + C18A 3C4F If unsigned Overflow Cout = 1 If signed No Overflow p + n 0 1 1 6C12 + 549F C0B1 If unsigned No Overflow Cout = 0 If signed Overflow p + p = n

38 Hex Subtraction and Overflow Same rules as in binary Convert A B to A + Comp. of B Drop any final carry out Same subtraction overflow rules Unsigned: Check if final Cout = 0 Signed: Check signs of addition inputs and result B1ED - 76FE 1 B1ED 8901 + 1 3AEF If unsigned No Overflow Cout = 1 If signed Overflow n + n = p 0001-0002 0 0001 FFFD + 1 FFFF If unsigned Overflow Cout = 0 If signed No Overflow p + n

NOT COVERED IN FALL 2014 39

40 Unsigned Multiplication Review Same rules as decimal multiplication Multiply each bit of Q by M shifting as you go An m-bit * n-bit mult. produces an m+n bit result Notice each partial product is a shifted copy of M or 0 (zero) 1010 * 1011 1010 1010_ 0000 + 1010 01101110 M (Multiplicand) Q (Multiplier) PP(Partial Products) P (Product)

41 Signed Multiplication Techniques When multiplying signed (2 s comp.) numbers, some new issues arise Must sign extend partial products (out to 2n bits) Without Sign Extension Wrong Answer! 1001 * 0110 0000 1001_ 1001 + 0000 00110110 = -7 = +6 = +54 With Sign Extension Correct Answer! 1001 * 0110 00000000 1111001_ 111001 + 00000 11010110 = -7 = +6 = -42

42 Signed Multiplication Techniques Also, must worry about negative multiplier MSB of multiplier has negative weight If MSB=1, multiply by -1 (i.e. take 2 s comp. of multiplicand) With Sign Extension but w/o consideration of MSB Wrong Answer! 1100 * 1010 00000000 1111100_ 000000 + 11100 11011000 = -4 = -6 = -40 Place Value: -8 Multiply by -1 With Sign Extension and w/ consideration of MSB Correct Answer! 1100 * 1010 00000000 1111100_ 000000 + 00100 00011000 Main Point: Signed and Unsigned Multiplication require different techniques Thus different instructions. = -4 = -6 = +24