Machine Representation/Numbers Lecture 3 CS 61C Machines Structures Fall 00 David Patterson U.C. Berkeley

Slides:



Advertisements
Similar presentations
Intro to CS – Honors I Representing Numbers GEORGIOS PORTOKALIDIS
Advertisements

HEXADECIMAL NUMBERS Code
CS61C L02 Number Representation (1) Garcia, Spring 2005 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C.
CS 61C L02 Number Representation (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C.
COMP3221: Microprocessors and Embedded Systems--Lecture 1 1 COMP3221: Microprocessors and Embedded Systems Lecture 3: Number Systems (I)
COMP3221 lec05-numbers-I.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 5: Number Systems – I
CS 61C L03 Introduction to C (1)Harvey / Wawrzynek Fall 2003 © UCB 8/29/2003  Brian Harvey ( John Wawrzynek  (Warznek) (
CS 61C L02 Number Representation (1)Harvey / Wawrzynek Fall 2003 © UCB 8/27/2003  Brian Harvey ( John Wawrzynek  (Warznek) (
Data Representation Computer Organization &
COMP3221 lec06-numbers-II.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 6: Number Systems - II
Data Representation COE 205
Assembly Language and Computer Architecture Using C++ and Java
Chapter 3 Data Representation.
The slides are modified from Dan Garcia,
Introduction to Programming with Java, for Beginners
CS 61C L02 Number Representation (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C.
Signed Numbers.
Assembly Language and Computer Architecture Using C++ and Java
Chapter 3 Data Representation. Chapter goals Describe numbering systems and their use in data representation Compare and contrast various data representation.
CS 61C L2 Introduction to C (1) A Carle, Summer 2006 © UCB inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 2: Introduction To C
CS61C L2 Number Representation & Introduction to C (1) Garcia, Fall 2005 © UCB Lecturer PSOE, new dad Dan Garcia inst.eecs.berkeley.edu/~cs61c.
Number Representation (1) Fall 2005 Lecture 12: Number Representation Integers and Computer Arithmetic.
COMP3221 lec07-numbers-III.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 7: Number Systems - III
+ CS 325: CS Hardware and Software Organization and Architecture Integers and Arithmetic Part 4.
Professor Jennifer Rexford COS 217
CS61C L2 Number Representation & Introduction to C (1) Beamer, Summer 2007 © UCB Scott Beamer Instructor inst.eecs.berkeley.edu/~cs61c CS61C : Machine.
Data Representation – Chapter 3 Sections 3-2, 3-3, 3-4.
COMP201 Computer Systems Number Representation. Number Representation Introduction Number Systems Integer Representations Examples  Englander Chapter.
+ CS 325: CS Hardware and Software Organization and Architecture Integers and Arithmetic.
Lecture 2: Number Representation
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
CENG 311 Machine Representation/Numbers
CSCI 136 Lab 1 Outline Go through the CD attached to the textbook. Homework Hints 135 Review.
Lecture 5.
CMPT 120 How computers run programs Summer 2012 Instructor: Hassan Khosravi.
Computers Organization & Assembly Language
CMPE 325 Computer Architecture II Cem Ergün Eastern Mediterranean University Integer Representation and the ALU.
IT253: Computer Organization
Computing Systems Basic arithmetic for computers.
Lec 3: Data Representation Computer Organization & Assembly Language Programming.
Digital Logic Design Lecture 3 Complements, Number Codes and Registers.
+ CS 325: CS Hardware and Software Organization and Architecture Integers and Arithmetic Part 2.
10-Sep Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Sept Representing Information in Computers:  numbers: counting numbers,
Data Representation Dr. Ahmed El-Bialy Dr. Sahar Fawzy.
46 Number Systems Problem: Implement simple pocket calculator Need: Display, adders & subtractors, inputs Display: Seven segment displays Inputs: Switches.
Lecture 5. Topics Sec 1.4 Representing Information as Bit Patterns Representing Text Representing Text Representing Numeric Values Representing Numeric.
Bits, Data Types, and Operations Slides based on set prepared by Gregory T. Byrd, North Carolina State University.
Lecture 11: Chapter 2 Today’s topic –Numerical representations Reminders –Homework 3 posted, due 9/29/2014 –Homework 4 posted, due 10/6/2014 –Midterm 1.
1 Data Representation Characters, Integers and Real Numbers Binary Number System Octal Number System Hexadecimal Number System Powered by DeSiaMore.
Data Representation, Number Systems and Base Conversions
CS61C L02 Number Representation (1) Garcia, Spring 2010 © UCB Lecturer SOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C.
Data Representation in Computer Systems. 2 Signed Integer Representation The conversions we have so far presented have involved only positive numbers.
IT 251 Computer Organization and Architecture Number Representation Chia-Chi Teng.
Cs641 pointers/numbers.1 Overview °Stack and the Heap °malloc() and free() °Pointers °numbers in binary.
CS1Q Computer Systems Lecture 2 Simon Gay. Lecture 2CS1Q Computer Systems - Simon Gay2 Binary Numbers We’ll look at some details of the representation.
1 IKI20210 Pengantar Organisasi Komputer Kuliah No. 23: Aritmatika 18 Desember 2002 Bobby Nazief Johny Moningka
Data Representation.
CML CML CS 230: Computer Organization and Assembly Language Aviral Shrivastava Department of Computer Science and Engineering School of Computing and Informatics.
Numbers in Computers.
Lec 11Systems Architecture1 Systems Architecture Lecture 11: Arithmetic for Computers Jeremy R. Johnson Anatole D. Ruslanov William M. Mongan Some or all.
9/23/2004Comp 120 Fall September Chapter 4 – Arithmetic and its implementation Assignments 5,6 and 7 posted to the class web page.
EE204 L03-ALUHina Anwar Khan EE204 Computer Architecture Lecture 03- ALU.
May 2, 2001System Architecture I1 Systems Architecture I (CS ) Lecture 11: Arithmetic for Computers * Jeremy R. Johnson May 2, 2001 *This lecture.
Based on slides from D. Patterson and www-inst.eecs.berkeley.edu/~cs152/ COM 249 – Computer Organization and Assembly Language Chapter 3 Arithmetic For.
David Kauchak CS 52 – Spring 2017
Bits, Data Types, and Operations
3.1 Denary, Binary and Hexadecimal Number Systems
March 2006 Saeid Nooshabadi
Chapter 2 Bits, Data Types & Operations Integer Representation
Number Representation
Presentation transcript:

Machine Representation/Numbers Lecture 3 CS 61C Machines Structures Fall 00 David Patterson U.C. Berkeley

cs61c-f00 L3 9/62 From last time: C v. Java C Designed for writing systems code, device drivers C is an efficient language, with little protection –Array bounds not checked –Variables not automatically initialized C v. Java: pointers and explicit memory allocation and deallocation –No garbage collection –Leads to memory leaks, funny pointers –Structure declaration does not allocate memory; use malloc() and free()

cs61c-f00 L3 9/63 Overview Recap: C v. Java Computer representation of “things” Unsigned Numbers Administrivia Free Food 5PM Thursday, Sept. 7 Computers at Work Signed Numbers: search for a good representation Shortcuts In Conclusion

cs61c-f00 L3 9/64 What do computers do? Computers manipulate representations of things! What can you represent with N bits? –2 N things! Which things? –Numbers! Characters! Pixels! Dollars! Position! Instructions!... –Depends on what operations you do on them

cs61c-f00 L3 9/65 Decimal Numbers: Base 10 Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Example: 3271 = (3x10 3 ) + (2x10 2 ) + (7x10 1 ) + (1x10 0 )

cs61c-f00 L3 9/66 Numbers: positional notation Number Base B => B symbols per digit: –Base 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Base 2 (Binary): 0, 1 Number representation: –d 31 d d 2 d 1 d 0 is a 32 digit number –value = d 31 x B 31 + d 30 x B d 2 x B 2 + d 1 x B 1 + d 0 x B 0 Binary:0,1 – = 1x x x x x x2 + 0x1 = = 90 –Notice that 7 digit binary number turns into a 2 digit decimal number –A base that converts to binary easily?

cs61c-f00 L3 9/67 Hexadecimal Numbers: Base 16 Hexadecimal: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F –Normal digits + 6 more: picked alphabet Conversion: Binary Hex –1 hex digit represents 16 decimal values –4 binary digits represent 16 decimal values => 1 hex digit replaces 4 binary digits Examples: – (binary) = ? (hex) –10111 (binary) = (binary) = ? –3F9(hex) = ? (binary)

cs61c-f00 L3 9/68 Decimal vs. Hexadecimal vs.Binary Examples: (binary) = ? (hex) (binary) = (binary) = ? (hex) 3F9(hex) = ? (binary) A B C D E F1111

cs61c-f00 L3 9/69 What to do with representations of numbers? Just what we do with numbers! –Add them –Subtract them –Multiply them –Divide them –Compare them Example: = 17 –so simple to add in binary that we can build circuits to do it –subtraction also just as you would in decimal

cs61c-f00 L3 9/610 Which base do we use? Decimal: great for humans, especially when doing arithmetic Hex: if human looking at long strings of binary numbers, its much easier to convert to hex and look 4 bits/symbol –Terrible for arithmetic; just say no Binary: what computers use; you learn how computers do +,-,*,/ –To a computer, numbers always binary –Doesn’t matter base in C, just the value: == 0x20 == –Use subscripts “ten”, “hex”, “two” in book, slides when might be confusing

cs61c-f00 L3 9/611 Administrivia Grading: fixed scale, not on a curve To try to switch sections - request to cs61c Viewing lectures again: tapes in 205 McLaughlin Read web page: Intro, FAQ, Schedule www- inst.eecs.berkeley.edu/~cs61c –TA assignments, Office Hours –Project 1 due Friday by Midnight

cs61c-f00 L3 9/612 Administrivia Tu/Th section 5-6PM; 18/118 “Mark Chew” is most recent TA He quit, so lab/discussion in canceled

cs61c-f00 L3 9/613 Free Food 5PM Thursday, Sept. 7 "The Importance of Graduate School" –Professor Katherine Yelick, UC Berkeley (Moderator) –Professor Mary Gray Baker, Stanford University –Dr. Serap Savari, Lucent Technology –Kris Hildrum, CS Current Graduate Student –5:30 p.m. PANEL DISCUSSION, Hewlett-Packard Auditorium, 306 SODA 5:00 p.m. REFRESHMENTS in the Hall, Fourth Floor, Soda Hall

cs61c-f00 L3 9/614 Bicycle Computer (Embedded) P. Brain –wireless heart monitor strap –record 5 measures: speed, time, current distance, elevation and heart rate –Every 10 to 60 sec. –8KB data => 33 hours –Stores information so can be uploaded through a serial port into PC to be analyzed Speed Altitude Heart Rate

cs61c-f00 L3 9/615 Limits of Computer Numbers Bits can represent anything! Characters? –26 letter => 5 bits –upper/lower case + punctuation => 7 bits (in 8) –rest of the world’s languages => 16 bits (unicode) Logical values? –0 -> False, 1 => True colors ? locations / addresses? commands? but N bits => only 2 N things

cs61c-f00 L3 9/616 Comparison How do you tell if X > Y ? See if X - Y > 0

cs61c-f00 L3 9/617 How to Represent Negative Numbers? So far, unsigned numbers Obvious solution: define leftmost bit to be sign! –0 => +, 1 => - –Rest of bits can be numerical value of number Representation called sign and magnitude MIPS uses 32-bit integers. +1 ten would be: And - 1 ten in sign and magnitude would be:

cs61c-f00 L3 9/618 Shortcomings of sign and magnitude? Arithmetic circuit more complicated –Special steps depending whether signs are the same or not Also, Two zeros – 0x = +0 ten – 0x = -0 ten –What would it mean for programming? Sign and magnitude abandoned

cs61c-f00 L3 9/619 Another try: complement the bits Example: 7 10 = = Called one’s Complement Note: postive numbers have leading 0s, negative numbers have leadings 1s What is ? How many positive numbers in N bits? How many negative ones?

cs61c-f00 L3 9/620 Shortcomings of ones complement? Arithmetic not too hard Still two zeros – 0x = +0 ten – 0xFFFFFFFF = -0 ten –What would it mean for programming? One’s complement eventually abandoned because another solution was better

cs61c-f00 L3 9/621 Search for Negative Number Representation Obvious solution didn’t work, find another What is result for unsigned numbers if tried to subtract large number from a small one? –Would try to borrow from string of leading 0s, so result would have a string of leading 1s –With no obvious better alternative, pick representation that made the hardware simple: leading 0s  positive, leading 1s  negative – xxx is >=0, xxx is < 0 This representation called two’s complement

cs61c-f00 L3 9/622 2’s Complement Number line 2 N-1 non- negatives 2 N-1 negatives one zero how many positives? comparison? overflow?

cs61c-f00 L3 9/623 Two’sComplement two = 0 ten two = 1 ten two = 2 ten two = 2,147,483,645 ten two = 2,147,483,646 ten two = 2,147,483,647 ten two = –2,147,483,648 ten two = –2,147,483,647 ten two = –2,147,483,646 ten two =–3 ten two =–2 ten two =–1 ten One zero, 1st bit => >=0 or <0, called sign bit –but one negative with no positive –2,147,483,648 ten

cs61c-f00 L3 9/624 Two’s Complement Formula Can represent positive and negative numbers in terms of the bit value times a power of 2: –d 31 x d 30 x d 2 x d 1 x d 0 x 2 0 Example two = 1x x x x2 2 +0x2 1 +0x2 0 = = -2,147,483,648 ten + 2,147,483,644 ten = -4 ten Note: need to specify width: we use 32 bits

cs61c-f00 L3 9/625 Two’s complement shortcut: Negation Invert every 0 to 1 and every 1 to 0, then add 1 to the result –Sum of number and its one’s complement must be two – two = -1 ten –Let x’ mean the inverted representation of x –Then x + x’ = -1  x + x’ + 1 = 0  x’ + 1 = -x Example: -4 to +4 to -4 x : two x’: two +1: two ()’: two +1: two

cs61c-f00 L3 9/626 Signed vs. Unsigned Numbers C declaration int –Declares a signed number –Uses two’s complement C declaration unsigned int –Declares a unsigned number –Treats 32-bit number as unsigned integer, so most significant bit is part of the number, not a sign bit

cs61c-f00 L3 9/627 Signed v. Unsigned Comparisons X = two Y = two Is X > Y? –unsigned:YES –signed:NO Converting to decimal to check –Signed comparison: -4 ten < 1,000,000,000 ten? –Unsigned comparison: -4,294,967,292 ten < 1,000,000,000 ten?

cs61c-f00 L3 9/628 Numbers are stored at addresses Memory is a place to store bits A word is a fixed number of bits (eg, 32) at an address –also fixed no. of bits Addresses are naturally represented as unsigned numbers = 2 k

cs61c-f00 L3 9/629 What if too big? Binary bit patterns above are simply representatives of numbers Numbers really have an infinite number of digits –with almost all being zero except for a few of the rightmost digits –Just don’t normally show leading zeros If result of add (or -,*/) cannot be represented by these rightmost HW bits, overflow is said to have occurred

cs61c-f00 L3 9/630 Two’s comp. shortcut: Sign extension Convert 2’s complement number using n bits to more than n bits Simply replicate the most significant bit (sign bit) of smaller to fill new bits –2’s comp. positive number has infinite 0s –2’s comp. negative number has infinite 1s –Bit representation hides leading bits; sign extension restores some of them –16-bit -4 ten to 32-bit: two two

cs61c-f00 L3 9/631 And in Conclusion... We represent “things” in computers as particular bit patterns: N bits =>2 N –numbers, characters,...(data) Decimal for human calculations, binary to undertstand computers, hex to understand binary 2’s complement universal in computing: cannot avoid, so learn Computer operations on the representation correspond to real operations on the real thing Overflow: numbers infinite but computers finite, so errors occur