fundamentals of programming
play

Fundamentals of Programming Session 2 Instructor: Maryam Asadi - PowerPoint PPT Presentation

Fundamentals of Programming Session 2 Instructor: Maryam Asadi Email: masadia@ce.sharif.edu 1 Fall 2018 Sharif University of Technology Outlines Programming Language Binary numbers Addition Subtraction Division


  1. Fundamentals of Programming Session 2 Instructor: Maryam Asadi Email: masadia@ce.sharif.edu 1 Fall 2018 Sharif University of Technology

  2. Outlines  Programming Language  Binary numbers  Addition  Subtraction  Division  Multiplication  One’s and Two’s Complement 2

  3. Programming Language  Instructing a computer or computing device to perform specific tasks  a vocabulary and set of grammatical rules  control the behavior of a machine  express algorithms precisely  a mode of human communication  Each programming language has a unique set of keywords (words that it understands) and a special syntax for organizing program instruction  Many programming languages have some form of written specification of their syntax (form) and semantics (meaning). 3

  4. Programming Language … 4

  5. Programming Language …  Evolution of Programming Languages:  First Generation: Machine languages  Strings of numbers giving machine specific instructions  Computer only understands machine language instructions.  Example: 1300042774 1400593419 1200274027  Second Generation: Assembly languages  English-like abbreviations representing elementary computer operations (translated via assemblers) 5

  6. Programming Language …  Example: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY  Third Generation : High-level languages  Codes similar to everyday English  Use mathematical notations (translated via compilers)  Example: grossPay = basePay + overPay 6

  7. Common Software  Operating System  Assemblers  Compilers  Interpreters 7

  8. Common Software … temp = v[k]; v[k] = v[k+1]; High-level Language v[k+1] = temp Compiler lw $t0, 0($S2) lw $t1, 4($S2) Assembly Language sw $t1, 0($S2) sw $t0, 4($S2) Assembler 0000 1001 1100 0110 1010 1010 1111 0101 1000 0000 Machine Language 1100 0110 1010 1111 0101 0101 1000 0000 1001 1100 8

  9. Common Software … 9

  10. Binary numbers  Binary numbers  Why binary?  Computers are built using digital circuits  Inputs and outputs can have only two values  True (high voltage) or false (low voltage)  Converting base 10 to base 2  Octal and hexadecimal  Integers  Unsigned integers  Integer addition  Signed integers  C bit operators  And, or, not, and xor  Shift-left and shift-right 10

  11. Base 10 and Base 2  Base 10  Each digit represents a power of 10  3971 = 3*10 3 + 9*10 2 + 7*10 1 + 1*10 0  Base 2  Each bit represents a power of 2  11001 = 1*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 25  Question :  What is the binary representation of number 20 ?  Response:  10100 11

  12. Base 8 000 = 0  Octal (base 8) 001 = 1  Digits 0, 1, …, 7 010 = 2 011 = 3  Thus the 12 bit binary 110 010 101 001 100 = 4 number converted to Oct is: 101 = 5 110 = 6 6251 111 = 7 12

  13. Base 8  Question :  What is the octal representation of number 118 (in base 10) ?  Response:  166  Question :  What is the octal representation of number 1011000101 (in base 2) ?  Response:  1305  Question :  What is the binary representation of number 1472 (in base 8) ?  Response:  1100111010 13

  14. Base 16  Hexadecimal (base 16)  Digits 0, 1, …, 9, A, B, C, D, E, F  Thus the 16-bit binary number 1011 0010 1010 1001 converted to Hex is: B2A9 0000 = 0 1000 = 8 0001 = 1 1001 = 9 0010 = 2 1010 = A 0011 = 3 1011 = B 0100 = 4 1100 = C 0101 = 5 1101 = D 0110 = 6 1110 = E 0111 = 7 1111 = F 14

  15. Base 16  Question :  What is the hexadecimal representation of number 375 (in base 10) ?  Response:  177  Question :  What is the hexadecimal representation of number 1011000101 (in base 2) ?  Response:  2C5  Question :  What is the binary representation of number 6A4D2 (in base 16) ?  Response:  01101010010011010010 15

  16. Integers  Fixed number of bits in memory  Short: usually 16 bits  Int: 16 or 32 bits  Long: 32 bits  Unsigned integer  No sign bit  Always positive or 0  Example of unsigned int  00000001  1  00001111  15  00010000  16  00100001  33  11111111  255 16

  17. Decimal Addition 1) Add 8 + 7 = 15 Add 3758 to 4657: Write down 5, carry 1 2) Add 5 + 5 + 1 = 11 1 1 1 Write down 1, carry 1 3 7 5 8 3) Add 7 + 6 + 1 = 14 + 4 6 5 7 Write down 4, carry 1 8 4 1 5 4) Add 3 + 4 + 1 = 8 Write down 8 17

  18. Binary Addition Rules:  0 + 0 = 0  0 + 1 = 1  1 + 0 = 1 (just like in decimal)  1 + 1 = 2 10 = 10 2 = 0 with 1 to carry  1 + 1 + 1 = 3 10 = 11 2 = 1 with 1 to carry 18

  19. Binary Addition … Col 1) Add 1 + 0 = 1 Write 1 Example 1: Add Col 2) Add 1 + 0 = 1 binary 110111 to 11100 Write 1 Col 3) Add 1 + 1 = 2 ( 10 in binary) 1 1 1 1 Write 0 , carry 1 1 1 0 1 1 1 Col 4) Add 1+ 0 + 1 = 2 Write 0 , carry 1 + 0 1 1 1 0 0 Col 5) Add 1 + 1 + 1 = 3 ( 11 in binary) 1 0 1 0 0 1 1 Write 1 , carry 1 Col 6) Add 1 + 1 + 0 = 2 Write 0 , carry 1 Col 7) Bring down the carried 1 Write 1 19

  20. Binary Addition … Verification You can always check your answer by converting the 110111 2  55 10 figures to decimal, doing the +011100 2 + 28 10 83 10 addition, and comparing the answers. 64 32 16 8 4 2 1 1 0 1 0 0 1 1 1 1 0 1 1 1 = 64 + 16 + 2 +1 + 0 1 1 1 0 0 = 83 10 1 0 1 0 0 1 1 20

  21. Decimal Subtraction 1) Try to subtract 5 – 7  can’t. Subtract Must borrow 10 from next column. 4657 from 8025 : Add the borrowed 10 to the original 5. Then subtract 15 – 7 = 8 . 2) Try to subtract 1 – 5  can’t. 1 7 9 1 Must borrow 10 from next column. 8 0 2 5 But next column is 0, so must go to 1 1 column after next to borrow. - 4 6 5 7 Add the borrowed 10 to the original 0. Now you can borrow 10 from this column. 3 3 6 8 Add the borrowed 10 to the original 1.. Then subtract 11 – 5 = 6 3) Subtract 9 – 6 = 3 4) Subtract 7 – 4 = 3 21

  22. Decimal Subtraction … 8 0 2 5 - 4 6 5 7 3 3 6 8  So when you cannot subtract, you borrow from the column to the left.  The amount borrowed is 1 base unit, which in decimal is 10.  The 10 is added to the original column value, so you will be able to subtract. 22

  23. Binary Subtraction • In binary, the base unit is 2 • So when you cannot subtract, you borrow from the column to the left. • The amount borrowed is 2. • The 2 is added to the original column value, so you will be able to subtract. 23

  24. Binary Subtraction … Col 1) Subtract 1 – 0 = 1 Col 2) Subtract 1 – 0 = 1 Example 1: Subtract Col 3) Try to subtract 0 – 1  can’t. binary 11100 from 110011 Must borrow 2 from next column. But next column is 0, so must go to column after next to borrow. 1 2 Add the borrowed 2 to the 0 on the right. 0 0 2 2 Now you can borrow from this column (leaving 1 remaining). 1 1 0 0 1 1 Add the borrowed 2 to the original 0. Then subtract 2 – 1 = 1 - 1 1 1 0 0 Col 4) Subtract 1 – 1 = 0 Col 5) Try to subtract 0 – 1  can’t. 1 0 1 1 1 Must borrow from next column. Add the borrowed 2 to the remaining 0. Then subtract 2 – 1 = 1 24 Col 6) Remaining leading 0 can be ignored.

  25. Binary Subtraction … Verification Subtract binary 110011 2  51 10 11100 from 110011 : - 11100 2 - 28 10 1 2 23 10 0 0 2 2 64 32 16 8 4 2 1 1 1 0 0 1 1 1 0 1 1 1 - 1 1 1 0 0 = 16 + 4 + 2 + 1 = 23 10 1 0 1 1 1 25

  26. One’s and Two’s Complement  Consider only numbers in a range  E.g., five-digit car odometer: 0, 1, …, 99999  E.g., eight-bit numbers 0, 1, …, 255  Roll-over when you run out of space  E.g., car odometer goes from 99999 to 0, 1, …  E.g., eight-bit number goes from 255 to 0, 1, … 26

  27. One’s and Two’s Complement …  One’s complement: flip every bit  E.g., b is 01000101 (i.e., 69 in base 10)  One’s complement is 10111010  That’s simply 255-69  Subtracting from 11111111 is easy (no carry needed!) 1111 1111 - 0100 0101 b one’s complement 1011 1010  Two’s complement  Add 1 to the one’s complement  E.g., (255 – 69) + 1  1011 1011 27

  28. One’s and Two’s Complement …  Computing “a – b” for unsigned integers  Same as “a + 256 – b”  Same as “a + (255 – b) + 1”  Same as “a + onecomplement(b) + 1”  Same as “a + twocomplement(b)”  Example: 172 – 69  The original number 69: 0100 0101  One’s complement of 69: 1011 1010  Two’s complement of 69: 1011 1011 1010 1100  Add to the number 172: 1010 1100 + 1011 1011  The sum comes to: 0110 0111 1 0110 0111  Equals: 103 in base 10 28

  29. One’s and Two’s Complement …  Sign-magnitude representation  Use one bit to store the sign  Zero for positive number  One for negative number  Examples  E.g., 0010 1100  44  E.g., 1010 1100  -44  Hard to do arithmetic this way, so it is rarely used  Complement representation  One’s complement  Flip every bit  E.g., 1101 0011  -44  Two’s complement  Flip every bit, then add 1 29  E.g., 1101 0100  -44

  30. One’s and Two’s Complement …  Complement representation vs Sign-magnitude representation  no extra hardware needed to make a subtraction  no extra requirements to show that they’re negative 30

Recommend


More recommend