DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-17-18-19-35-36 out of 36 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 61C L2 Introduction to C (1)A Carle, Summer 2005 © UCBinst.eecs.berkeley.edu/~cs61cCS61C : Machine StructuresLecture 2: Introduction To C2005-06-21Andy CarleCS 61C L2 Introduction to C (2)A Carle, Summer 2005 © UCBReview•Two’s Complement ….CS 61C L2 Introduction to C (3)A Carle, Summer 2005 © UCB2’s Complement Properties•As with sign and magnitude, leading 0s ⇒ positive, leading 1s ⇒negative- 000000...xxx is ≥ 0, 111111...xxx is < 0- except 1…1111 is -1, not -0 (as in sign & mag.)•Only 1 Zero!CS 61C L2 Introduction to C (4)A Carle, Summer 2005 © UCB2’s Complement Number “line”: N = 5•2N-1non-negatives •2N-1negatives•one zero•how many positives?0000000001000101111111110100000111110001012-1-2-15-1615......-311101-411100CS 61C L2 Introduction to C (5)A Carle, Summer 2005 © UCBTwo’s Complement Formula •Can represent positive and negativenumbers in terms of the bit value times a power of 2:d31 x -(231) + d30 x 230+ ... + d2 x 22+ d1 x 21+ d0 x 20•Example: 1101two= 1x-(23) + 1x22 + 0x21 + 1x20= -23+ 22 + 0 + 20= -8 + 4 + 0 + 1 = -8 + 5= -3tenCS 61C L2 Introduction to C (6)A Carle, Summer 2005 © UCBTwo’s Complement shortcut: Negation•Change every 0 to 1 and 1 to 0 (invert or complement), then add 1 to the result •Proof*: Sum of number and its (one’s) complement must be 111...111twoHowever, 111...111two= -1tenLet x’ ⇒ one’s complement representation of xThen x + x’ = -1 ⇒ x + x’ + 1 = 0 ⇒ x’ + 1 = -x•Example: -3 to +3 to -3x : 1111 1111 1111 1111 1111 1111 1111 1101twox’: 0000 0000 0000 0000 0000 0000 0000 0010two+1: 0000 0000 0000 0000 0000 0000 0000 0011two()’: 1111 1111 1111 1111 1111 1111 1111 1100two+1: 1111 1111 1111 1111 1111 1111 1111 1101two* Check out www.cs.berkeley.edu/~dsw/twos_complement.htmlCS 61C L2 Introduction to C (7)A Carle, Summer 2005 © UCBTwo’s comp. shortcut: Sign extension• Convert 2’s complement number rep. 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•Binary representation hides leading bits; sign extension restores some of them•16-bit -4tento 32-bit: 1111 1111 1111 1100two 1111 1111 1111 1111 1111 1111 1111 1100twoCS 61C L2 Introduction to C (8)A Carle, Summer 2005 © UCBWhat if too big?• Binary bit patterns above are simply representativesof numbers. Strictly speaking they are called “numerals”.• Numbers really have an ∞ number of digits• with almost all being same (00…0 or 11…1) except for a few of the rightmost digits • Just don’t normally show leading digits• If result of add (or -, *, / ) cannot be represented by these rightmost HW bits, overflowis said to have occurred.00000 00001000101111111110unsignedCS 61C L2 Introduction to C (9)A Carle, Summer 2005 © UCBNumber Summary• We represent “things” in computers as particular bit patterns: N bits ⇒ 2N• Decimal for human calculations, binary for computers, hex to write binary more easily• 1’s complement - mostly abandoned• 2’s complement universal in computing: cannot avoid, so learn• Overflow: numbers ∞; computers finite, errors! 00000 00001 01111...111111111010000 ...00000 00001 01111...111111111010000 ...CS 61C L2 Introduction to C (10)A Carle, Summer 2005 © UCBPreview: Signed vs. Unsigned Variables•Java just declares integers int• Uses two’s complement•C has declaration int also• Declares variable as a signed integer• Uses two’s complement•Also, C declaration unsigned int• Declares a unsigned integer• Treats 32-bit number as unsigned integer, so most significant bit is part of the number, not a sign bitCS 61C L2 Introduction to C (11)A Carle, Summer 2005 © UCBBig Idea•Next Topic: Numbers can Be Anything!CS 61C L2 Introduction to C (12)A Carle, Summer 2005 © UCBBIG IDEA: Bits can represent anything!!• REMEMBER: N digits in base B ⇒ BNvalues• For binary in particular: N bits Î 2Nvalues•Characters?• 26 letters ⇒ 5 bits (25= 32)• upper/lower case + punctuation ⇒ 7 bits (in 8) (“ASCII”)• standard code to cover all the world’s languages ⇒ 16 bits (“Unicode”)•Logical values?• 0 ⇒ False, 1 ⇒ True•colors ? Ex:•locations / addresses? commands?Red (00) Green (01) Blue (11)CS 61C L2 Introduction to C (13)A Carle, Summer 2005 © UCBExample: Numbers represented in memory•Memory is a place to store bits•A word is a fixed number of bits (eg, 32) at an address•Addresses are naturally represented as unsigned numbers in C0xdeadbeef111110000010110CS 61C L2 Introduction to C (14)A Carle, Summer 2005 © UCBMoving Along•Next Topic: Intro to CCS 61C L2 Introduction to C (15)A Carle, Summer 2005 © UCBDisclaimer•Important: You will not learn how to fully code in C in these lectures! You’ll still need your C reference for this course.• K&R is a great reference.- But… check online for more sources.• “JAVA in a Nutshell,” O’Reilly. - Chapter 2, “How Java Differs from C”.CS 61C L2 Introduction to C (16)A Carle, Summer 2005 © UCBCompilation : OverviewC compilerstake C and convert it into an architecture specific machine code (string of 1s and 0s).• Unlike Java which converts to architecture independent bytecode.• Unlike most Scheme environments which interpret the code.• Generally a 2 part process of compiling.c files to .o files, then linking the .o files into executablesCS 61C L2 Introduction to C (17)A Carle, Summer 2005 © UCBCompilation : Advantages•Great run-time performance: generally much faster than Scheme or Java for comparable code (because it optimizes for a given architecture)•OK compilation time: enhancements in compilation procedure (Makefiles) allow only modified files to be recompiledCS 61C L2 Introduction to C (18)A Carle, Summer 2005 © UCBCompilation : Disadvantages•All compiled files (including the executable) are architecture specific, depending on both the CPU type and the operating system.•Executable must be rebuilt on each new system.• Called “porting your code” to a new architecture.•The “change→compile→run [repeat]” iteration cycle is slowCS 61C L2 Introduction to C (19)A Carle, Summer 2005 © UCBC vs. Java™ Overview (1/2)Java• Object-oriented(OOP)• “Methods”• Class libraries of data structures• Automaticmemory managementC• No built-in object abstraction. Data


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?