CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle...
Transcript of CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle...
![Page 1: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/1.jpg)
CS 64 Week 1 Lecture 1Kyle Dewey
Tuesday, January 5, 16
![Page 2: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/2.jpg)
Overview
• Administrative stuff
• Class motivation
• Syllabus
• Working with different bases
• Bitwise operations
• Twos complement
Tuesday, January 5, 16
![Page 3: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/3.jpg)
Administrative Stuff
Tuesday, January 5, 16
![Page 4: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/4.jpg)
About Me
• 5th year Ph.D. candidate, doing programming languages research (automated testing)
• Not a professor; just call me Kyle
• Fifth time teaching; second time teaching CS64
Tuesday, January 5, 16
![Page 5: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/5.jpg)
About this Class
• See something wrong? Want something improved? Email me about it! ([email protected])
• I generally operate based on feedback
Tuesday, January 5, 16
![Page 6: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/6.jpg)
Bad Feedback
• This guy sucks.
• This class is boring.
• This material is useless.
Tuesday, January 5, 16
![Page 7: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/7.jpg)
Good Feedback
• This guy sucks, I can’t read his writing.
• This class is boring, it’s way too slow.
• This material is useless, I don’t see how it relates to anything in reality.
• I can’t fix anything if I don’t know what’s wrong
Tuesday, January 5, 16
![Page 8: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/8.jpg)
Questions
• Which best describes you?
• CS major
• ECE major
• Other
Tuesday, January 5, 16
![Page 9: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/9.jpg)
Office Hours Placement
Tuesday, January 5, 16
![Page 10: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/10.jpg)
Class Motivation
Tuesday, January 5, 16
![Page 11: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/11.jpg)
int main(int argc, char** argv) { ...}
Tuesday, January 5, 16
![Page 12: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/12.jpg)
int main(int argc, char** argv) { ...}
Tuesday, January 5, 16
![Page 13: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/13.jpg)
int main(int argc, char** argv) { ...}
3.14956
Tuesday, January 5, 16
![Page 14: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/14.jpg)
int main(int argc, char** argv) { ...}
3.14956
Tuesday, January 5, 16
![Page 15: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/15.jpg)
int main(int argc, char** argv) { ...}
3.14956
More Efficient Algorithms
Tuesday, January 5, 16
![Page 16: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/16.jpg)
int main(int argc, char** argv) { ...}
3.14956
More Efficient Algorithms
Tuesday, January 5, 16
![Page 17: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/17.jpg)
Why are things still slow?
Tuesday, January 5, 16
![Page 18: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/18.jpg)
The magic box isn’t so magic
Tuesday, January 5, 16
![Page 19: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/19.jpg)
Array Access
• Constant time! (O(1))
• Where the random in random access memory comes from!
arr[x]
Tuesday, January 5, 16
![Page 20: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/20.jpg)
Array Access
• Constant time! (O(1))
• Where the random in random access memory comes from!
arr[x]
Tuesday, January 5, 16
![Page 21: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/21.jpg)
Array Access
• Memory is loaded as chunks into caches
• Cache access is much faster (e.g., 10x)
• Iterating through an array is fast
• Jumping around any which way is slow
• Can change time complexity if accounted for
• O(N^3) versus ~O(N^4)
Tuesday, January 5, 16
![Page 22: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/22.jpg)
Instruction Ordering
int x = a + b;int y = c * d;int z = e - f;
int z = e - f;int y = c * d;int x = a + b;
Tuesday, January 5, 16
![Page 23: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/23.jpg)
Instruction Ordering
int x = a + b;int y = c * d;int z = e - f;
int z = e - f;int y = c * d;int x = a + b;
3 Milliseconds? 3 Milliseconds?
Tuesday, January 5, 16
![Page 24: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/24.jpg)
Instruction Ordering
int x = a + b;int y = c * d;int z = e - f;
int z = e - f;int y = c * d;int x = a + b;
3 Milliseconds? 3 Milliseconds?
Tuesday, January 5, 16
![Page 25: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/25.jpg)
Instruction Ordering• Modern processors are pipelined, and can
execute sub-portions of instructions in parallel
• Depends on when instructions are encountered
• Some can execute whole instructions in different orders
• If your processor is from Intel, it is insane.
Tuesday, January 5, 16
![Page 26: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/26.jpg)
The Point• If you really want performance, you need to
know how the magic works
• “But it scales!” - empirically, probably not
• Chrome is fast for a reason
• If you want to write a naive compiler (CS160), you need to know some low-level details
• If you want to write a fast compiler, you need to know tons of low-level details
Tuesday, January 5, 16
![Page 27: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/27.jpg)
So Why Digital Design?
Tuesday, January 5, 16
![Page 28: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/28.jpg)
So Why Digital Design?
Tuesday, January 5, 16
![Page 29: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/29.jpg)
So Why Digital Design?
• Basically, circuits are the programming language of hardware
• Yes, everything goes back to physics
Tuesday, January 5, 16
![Page 30: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/30.jpg)
Syllabus
Tuesday, January 5, 16
![Page 31: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/31.jpg)
Working with Different Bases
Tuesday, January 5, 16
![Page 32: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/32.jpg)
What’s In a Number?
• Question: why exactly does 123 have the value 123? As in, what does it mean?
Tuesday, January 5, 16
![Page 33: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/33.jpg)
What’s In a Number?
123
Tuesday, January 5, 16
![Page 34: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/34.jpg)
What’s In a Number?
321
Tuesday, January 5, 16
![Page 35: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/35.jpg)
What’s In a Number?
321
OnesTensHundreds
Tuesday, January 5, 16
![Page 36: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/36.jpg)
What’s In a Number?
321
OnesTensHundreds
100 10 10 1 1 1
Tuesday, January 5, 16
![Page 37: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/37.jpg)
Question• Why did we go to tens? Hundreds?
321
OnesTensHundreds
100 10 10 1 1 1
Tuesday, January 5, 16
![Page 38: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/38.jpg)
Answer• Because we are in decimal (base 10)
321
OnesTensHundreds
100 10 10 1 1 1
Tuesday, January 5, 16
![Page 39: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/39.jpg)
Another View
123
Tuesday, January 5, 16
![Page 40: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/40.jpg)
Another View
321
Tuesday, January 5, 16
![Page 41: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/41.jpg)
Another View
321
3 x 1002 x 1011 x 102
Tuesday, January 5, 16
![Page 42: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/42.jpg)
Conversion from Some Base to Decimal
• Involves repeated division by the value of the base
• From right to left: list the remainders
• Continue until 0 is reached
• Final value is result of reading remainders from bottom to top
• For example: what is 231 decimal to decimal?
Tuesday, January 5, 16
![Page 43: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/43.jpg)
Conversion from Some Base to Decimal
231
Tuesday, January 5, 16
![Page 44: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/44.jpg)
Conversion from Some Base to Decimal
23123
Remainder
110
Tuesday, January 5, 16
![Page 45: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/45.jpg)
Conversion from Some Base to Decimal
23123
Remainder
11010
2 3
Tuesday, January 5, 16
![Page 46: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/46.jpg)
Conversion from Some Base to Decimal
23123
Remainder
11010
2 3100 2
Tuesday, January 5, 16
![Page 47: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/47.jpg)
Now for Binary
• Binary is base 2
• Useful because circuits are either on or off, representable as two states, 0 and 1
Tuesday, January 5, 16
![Page 48: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/48.jpg)
Now for Binary
1010
Tuesday, January 5, 16
![Page 49: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/49.jpg)
Now for Binary
1 0 1 0
Tuesday, January 5, 16
![Page 50: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/50.jpg)
Now for Binary
1 0 1 0
OnesTwosFoursEights
Tuesday, January 5, 16
![Page 51: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/51.jpg)
Now for Binary
1 0 1 0
OnesTwosFoursEights
0 x 201 x 210 x 221 x 23
8 20 0Tuesday, January 5, 16
![Page 52: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/52.jpg)
Question
• What is binary 0101 as a decimal number?
Tuesday, January 5, 16
![Page 53: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/53.jpg)
Answer• What is binary 0101 as a decimal number?
• 5
0 1 0 1
OnesTwosFoursEights
1 x 200 x 211 x 220 x 23
0 04 1Tuesday, January 5, 16
![Page 54: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/54.jpg)
From Decimal to Binary
• What is decimal 57 to binary?
Tuesday, January 5, 16
![Page 55: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/55.jpg)
From Decimal to Binary
57
Tuesday, January 5, 16
![Page 56: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/56.jpg)
From Decimal to Binary
5728
Remainder
12
Tuesday, January 5, 16
![Page 57: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/57.jpg)
From Decimal to Binary
5728
Remainder
122
14 0
Tuesday, January 5, 16
![Page 58: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/58.jpg)
From Decimal to Binary
5728
Remainder
122
14 07
20
Tuesday, January 5, 16
![Page 59: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/59.jpg)
From Decimal to Binary
5728
Remainder
122
14 07
20
32
1
Tuesday, January 5, 16
![Page 60: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/60.jpg)
From Decimal to Binary
5728
Remainder
122
14 07
20
32
121 1
Tuesday, January 5, 16
![Page 61: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/61.jpg)
From Decimal to Binary
5728
Remainder
122
14 07
20
32
121 120 1
Tuesday, January 5, 16
![Page 62: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/62.jpg)
Octal
• Octal is base 8
• Same idea
Tuesday, January 5, 16
![Page 63: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/63.jpg)
Octal Example
• What is 172 octal in decimal?
Tuesday, January 5, 16
![Page 64: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/64.jpg)
Octal Example
172
Tuesday, January 5, 16
![Page 65: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/65.jpg)
Octal Example
271
Tuesday, January 5, 16
![Page 66: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/66.jpg)
Octal Example
271
1 x 82 7 x 81 2 x 80
OnesEightsSixty-fours
Tuesday, January 5, 16
![Page 67: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/67.jpg)
Octal Example
271
1 x 82 7 x 81 2 x 80
OnesEightsSixty-fours
648 8 8 8 8 8 8
1 1(56)Tuesday, January 5, 16
![Page 68: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/68.jpg)
Octal Example
271
1 x 82 7 x 81 2 x 80
OnesEightsSixty-fours
648 8 8 8 8 8 8
1 1(56)
Answer: 122
Tuesday, January 5, 16
![Page 69: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/69.jpg)
From Decimal to Octal
• What is 182 decimal to octal?
Tuesday, January 5, 16
![Page 70: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/70.jpg)
From Decimal to Octal
182
Tuesday, January 5, 16
![Page 71: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/71.jpg)
From Decimal to Octal
182
Remainder
822 6
Tuesday, January 5, 16
![Page 72: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/72.jpg)
From Decimal to Octal
182
Remainder
822 62
86
Tuesday, January 5, 16
![Page 73: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/73.jpg)
From Decimal to Octal
182
Remainder
822 62
868
0 2
Tuesday, January 5, 16
![Page 74: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/74.jpg)
Hexadecimal
• Base 16
• Binary is horribly inconvenient to write out
• Easier to convert between hexadecimal (which is more convenient) and binary
• Each hexadecimal digit maps to four binary digits
• Can just memorize a table
Tuesday, January 5, 16
![Page 75: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/75.jpg)
Hexadecimal
• Digits 0-9, along with A (10), B (11), C (12), D (13), E (14), F (15)
Tuesday, January 5, 16
![Page 76: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/76.jpg)
Hexadecimal Example
• What is 1AF hexadecimal in decimal?
Tuesday, January 5, 16
![Page 77: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/77.jpg)
Hexadecimal Example
FA1
Tuesday, January 5, 16
![Page 78: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/78.jpg)
Hexadecimal Example
FA1
OnesSixteensTwo-fifty-sixes
Tuesday, January 5, 16
![Page 79: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/79.jpg)
Hexadecimal Example
FA1
1 x 162 10 x 161 15 x 160
OnesSixteensTwo-fifty-sixes
Tuesday, January 5, 16
![Page 80: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/80.jpg)
Hexadecimal Example
FA1
1 x 162 10 x 161 15 x 160
OnesSixteensTwo-fifty-sixes
256
16 16 16 16 1616 16 16 16 16
(160)
1 1 1 1 11 1 1 1 11 1 1 1 1
(15)Tuesday, January 5, 16
![Page 81: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/81.jpg)
Hexadecimal to Binary
• Previous techniques all work, using decimal as an intermediate
• The faster way: memorize a table (which can be easily reconstructed)
Tuesday, January 5, 16
![Page 82: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/82.jpg)
Hexadecimal to Binary
Hexadecimal Binary
0 00001 00012 00103 00114 01005 01016 01107 0111
Hexadecimal Binary
8 10009 1001
A (10) 1010B (11) 1011C (12) 1100D (13) 1101E (14) 1110F (15) 1111
Tuesday, January 5, 16
![Page 83: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/83.jpg)
Bitwise Operations
Tuesday, January 5, 16
![Page 84: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/84.jpg)
Bitwise AND
• Similar to logical AND (&&), except it works on a bit-by-bit manner
• Denoted by a single ampersand: &
(1001 & 0101)= 0001
Tuesday, January 5, 16
![Page 85: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/85.jpg)
Bitwise OR
• Similar to logical OR (||), except it works on a bit-by-bit manner
• Denoted by a single pipe character: |
(1001 | 0101)= 1101
Tuesday, January 5, 16
![Page 86: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/86.jpg)
Bitwise XOR
• Exclusive OR, denoted by a carat: ^
• Similar to bitwise OR, except that if both inputs are 1 then the result is 0
(1001 ^ 0101)= 1100
Tuesday, January 5, 16
![Page 87: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/87.jpg)
Bitwise NOT
• Similar to logical NOT (!), except it works on a bit-by-bit manner
• Denoted by a tilde character: ~
~1001 = 0110
Tuesday, January 5, 16
![Page 88: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/88.jpg)
Shift Left
• Move all the bits N positions to the left, subbing in N 0s on the right
Tuesday, January 5, 16
![Page 89: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/89.jpg)
Shift Left
• Move all the bits N positions to the left, subbing in N 0s on the right
1001
Tuesday, January 5, 16
![Page 90: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/90.jpg)
Shift Left
• Move all the bits N positions to the left, subbing in N 0s on the right
1001 << 2 =100100
Tuesday, January 5, 16
![Page 91: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/91.jpg)
Shift Left
• Useful as a restricted form of multiplication
• Question: how?
1001 << 2 =100100
Tuesday, January 5, 16
![Page 92: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/92.jpg)
Shift Left as Multiplication
• Equivalent decimal operation:
234
Tuesday, January 5, 16
![Page 93: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/93.jpg)
Shift Left as Multiplication
• Equivalent decimal operation:
234 << 1 =2340
Tuesday, January 5, 16
![Page 94: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/94.jpg)
Shift Left as Multiplication
• Equivalent decimal operation:
234 << 1 =2340
234 << 2 =23400
Tuesday, January 5, 16
![Page 95: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/95.jpg)
Multiplication• Shifting left N positions multiplies by (base)N
• Multiplying by 2 or 4 is often necessary (shift left 1 or 2 positions, respectively)
• Often a whooole lot faster than telling the processor to multiply
• Compilers try hard to do this
234 << 2 =23400
Tuesday, January 5, 16
![Page 96: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/96.jpg)
Shift Right
• Move all the bits N positions to the right, subbing in either N 0s or N 1s on the left
• Two different forms
Tuesday, January 5, 16
![Page 97: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/97.jpg)
Shift Right
• Move all the bits N positions to the right, subbing in either N 0s or N (whatever the leftmost bit is)s on the left
• Two different forms1001 >> 2 =either 0010 or 1110
Tuesday, January 5, 16
![Page 98: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/98.jpg)
Shift Right Trick
• Question: If shifting left multiplies, what does shift right do?
Tuesday, January 5, 16
![Page 99: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/99.jpg)
Shift Right Trick
• Question: If shifting left multiplies, what does shift right do?
• Answer: divides in a similar way, but truncates result
Tuesday, January 5, 16
![Page 100: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/100.jpg)
Shift Right Trick
• Question: If shifting left multiplies, what does shift right do?
• Answer: divides in a similar way, but truncates result
234
Tuesday, January 5, 16
![Page 101: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/101.jpg)
Shift Right Trick
• Question: If shifting left multiplies, what does shift right do?
• Answer: divides in a similar way, but truncates result
234 >> 1 =23
Tuesday, January 5, 16
![Page 102: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/102.jpg)
Two Forms of Shift Right
• Subbing in 0s makes sense
• What about subbing in the leftmost bit?
• And why is this called “arithmetic” shift right?
1100 (arithmetic)>> 1 =1110
Tuesday, January 5, 16
![Page 103: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/103.jpg)
Answer...Sort of
• Arithmetic form is intended for numbers in twos complement, whereas the non-arithmetic form is intended for unsigned numbers
Tuesday, January 5, 16
![Page 104: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/104.jpg)
Twos Complement
Tuesday, January 5, 16
![Page 105: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/105.jpg)
Problem
• Binary representation so far makes it easy to represent positive numbers and zero
• Question: What about representing negative numbers?
Tuesday, January 5, 16
![Page 106: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/106.jpg)
Twos Complement
• Way to represent positive integers, negative integers, and zero
• If 1 is in the most significant bit (generally leftmost bit in this class), then it is negative
Tuesday, January 5, 16
![Page 107: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/107.jpg)
Decimal to Twos Complement
• Example: -5 decimal to binary (twos complement)
Tuesday, January 5, 16
![Page 108: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/108.jpg)
Decimal to Twos Complement
• Example: -5 decimal to binary (twos complement)
• First, convert the magnitude to an unsigned representation
Tuesday, January 5, 16
![Page 109: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/109.jpg)
Decimal to Twos Complement
• Example: -5 decimal to binary (twos complement)
• First, convert the magnitude to an unsigned representation
5 (decimal) = 0101 (binary)
Tuesday, January 5, 16
![Page 110: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/110.jpg)
Decimal to Twos Complement
• Then, take the bits, and negate them
Tuesday, January 5, 16
![Page 111: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/111.jpg)
Decimal to Twos Complement
• Then, take the bits, and negate them
0101
Tuesday, January 5, 16
![Page 112: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/112.jpg)
Decimal to Twos Complement
• Then, take the bits, and negate them
~0101 = 1010
Tuesday, January 5, 16
![Page 113: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/113.jpg)
Decimal to Twos Complement
• Finally, add one:
Tuesday, January 5, 16
![Page 114: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/114.jpg)
Decimal to Twos Complement
• Finally, add one:
1010
Tuesday, January 5, 16
![Page 115: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/115.jpg)
Decimal to Twos Complement
• Finally, add one:1010 + 1 =1011
Tuesday, January 5, 16
![Page 116: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/116.jpg)
Twos Complement to Decimal
• Same operation: negate the bits, and add one
Tuesday, January 5, 16
![Page 117: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/117.jpg)
Twos Complement to Decimal
• Same operation: negate the bits, and add one
1011
Tuesday, January 5, 16
![Page 118: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/118.jpg)
Twos Complement to Decimal
• Same operation: negate the bits, and add one
~1011 = 0100
Tuesday, January 5, 16
![Page 119: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/119.jpg)
Twos Complement to Decimal
• Same operation: negate the bits, and add one
0100
Tuesday, January 5, 16
![Page 120: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/120.jpg)
Twos Complement to Decimal
• Same operation: negate the bits, and add one
0100 + 1 =0101
Tuesday, January 5, 16
![Page 121: CS 64 Week 1 Lecture 1kyledewey/cs64w16/lectures/week1/lecture_1.pdfCS 64 Week 1 Lecture 1 Kyle Dewey Tuesday, January 5, 16. Overview ... 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110](https://reader033.fdocuments.in/reader033/viewer/2022052104/603f74c4fb09c232ed02d850/html5/thumbnails/121.jpg)
Where Is Twos Complement From?
• Intuition: try to subtract 1 from 0, in decimal
• Involves borrowing from an invisible number on the left
• Twos complement is based on the same idea
Tuesday, January 5, 16