9 7 00 From last time C v Java C Designed for writing systems code device drivers C is an efficient language with little protection Machine Representation Numbers Lecture 3 CS 61C Machines Structures Fall 00 David Patterson U C Berkeley Array bounds not checked Variables not automatically initialized C v Java pointers and explicit memory allocation and deallocation http www inst eecs berkeley edu cs61c No garbage collection Leads to memory leaks funny pointers Structure declaration does not allocate memory use malloc and free cs61c f00 L3 9 6 Overview What do computers do 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 6 2 Computers manipulate representations of things What can you represent with N bits 2N things Which things Numbers Characters Pixels Dollars Position Instructions Depends on what operations you do on them 3 cs61c f00 L3 9 6 4 Decimal Numbers Base 10 Numbers positional notation Digits 0 1 2 3 4 5 6 7 8 9 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 Example 3271 3x103 2x102 7x101 1x100 Number representation d31d30 d2d1d0 is a 32 digit number value d31x B31 d30 x B30 d2 x B2 d1 x B 1 d0 x B0 Binary 0 1 cs61c f00 L3 9 6 CS61C F99 5 1011010 1x26 0x2 5 1x24 1x23 0x22 1x2 0x1 64 16 8 2 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 6 6 1 9 7 00 Decimal vs Hexadecimal vs Binary Hexadecimal Numbers Base 16 Examples 1010 1100 0101 binary hex 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 10111 binary 0001 0111 binary hex Examples 3F9 hex binary 1010 1100 0101 binary hex 10111 binary 0001 0111 binary 3F9 hex binary cs61c f00 L3 9 6 7 What to do with representations of numbers Just what we do with numbers Add them Subtract them Multiply them Divide them Compare them Example 10 7 17 1 0 0 1 1 1 0 0 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 cs61c f00 L3 9 6 8 Which base do we use 1 1 1 0 1 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0 1 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 6 9 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 3210 0x20 1000002 Use subscripts ten hex two in book slides when might be confusing 10 cs61c f00 L3 9 6 Administrivia Administrivia Grading fixed scale not on a curve To try to switch sections email request to cs61c Viewing lectures again tapes in 205 McLaughlin Read web page Intro FAQ Schedule wwwinst eecs berkeley edu cs61c Tu Th section 5 6PM 18 118 Mark Chew is most recent TA He quit so lab discussion in canceled TA assignments Office Hours Project 1 due Friday by Midnight cs61c f00 L3 9 6 CS61C F99 11 cs61c f00 L3 9 6 12 2 9 7 00 Bicycle Computer Embedded 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 P Brain Heart Rate Speed Altitude 5 00 p m REFRESHMENTS in the Hall Fourth Floor Soda Hall cs61c f00 L3 9 6 13 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 cs61c f00 L3 9 6 Limits of Computer Numbers Comparison Bits can represent anything Characters How do you tell if X Y See if X Y 0 14 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 2N things cs61c f00 L3 9 6 15 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 1ten would be 0000 0000 0000 0000 0000 0000 0000 0001 And 1ten in sign and magnitude would be 1000 0000 0000 0000 0000 0000 0000 0001 cs61c f00 L3 9 6 CS61C F99 17 cs61c f00 L3 9 6 16 Shortcomings of sign and magnitude Arithmetic circuit more complicated Special steps depending whether signs are the same or not Also Two zeros 0x00000000 0ten 0x80000000 0 ten What would it mean for programming Sign and magnitude abandoned cs61c f00 L3 9 6 18 3 9 7 00 Shortcomings of ones complement Another try complement the bits Example 710 001112 710 110002 Called one s Complement Note postive numbers have leading 0s negative numbers have leadings 1s 00000 00001 01111 Arithmetic not too hard Still two zeros 0x00000000 0ten 0xFFFFFFFF 0 ten What would it mean for programming One s complement eventually abandoned because another solution was better 10000 11110 11111 What is 00000 How many positive numbers in N bits How many negative ones cs61c f00 L3 9 6 19 cs61c f00 L3 9 6 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 000000 xxx is 0 111111 xxx is 0 This representation called two s complement cs61c f00 L3 9 6 21 1111 1111 1111 0000 0000 0000 0 ten 1ten 2ten 1101two 2 147 483 645ten 1110two 2 147 483 646 ten 1111two 2 147 483 647 ten 0000two 2 147 483 648ten 0001two 2 147 483 647ten 0010two …
View Full Document
Unlocking...