1 / 22

COMP3221: Microprocessors and Embedded Systems

COMP3221: Microprocessors and Embedded Systems. Lecture 3: Number Systems (I) http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 1, 2005. Overview. Positional notation Decimal, hexadecimal and binary One’ complement Two’s complement. Numbers: positional notation.

Download Presentation

COMP3221: Microprocessors and Embedded Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP3221: Microprocessors and Embedded Systems Lecture 3: Number Systems (I) http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 1, 2005 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  2. Overview • Positional notation • Decimal, hexadecimal and binary • One’ complement • Two’s complement COMP3221: Microprocessors and Embedded Systems--Lecture 1

  3. 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: • dpdp-1 ... d2d1d0 is ap digit number • value = dpx Bp + dp-1 x Bp-1 + ... + d2 x B2 + d1 x B1 + d0 x B0 • Binary: 0,1 • 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x2 + 0x1 = 64 + 16 + 8 + 2 = 90 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  4. Hexadecimal Numbers: Base 16 (1/2) • Digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • Normal digits have expected values • In addition: • A  10 • B  11 • C  12 • D  13 • E  14 • F  15 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  5. Hexadecimal Numbers: Base 16 (2/2) • Example (convert hex to decimal): • B28F0DD = (Bx166) + (2x165) + (8x164) + (Fx163) + (0x162) + (Dx161) + (Dx160) • = (11x166) + (2x165) + (8x164) + (15x163) + (0x162) + (13x161) + (13x160) • = 187232477 decimal • Notice that a 7 digit hex number turns out to be a 9 digit decimal number COMP3221: Microprocessors and Embedded Systems--Lecture 1

  6. Decimal vs. Hexadecimal vs. Binary 00 0 000001 1 000102 2 001003 3 001104 4 010005 5 010106 6 011007 7 011108 8 100009 9 100110 A 101011 B 101112 C 110013 D 110114 E 111015 F 1111 • Examples: • 1010 1100 0101 (binary) = ? (hex) • 10111 (binary) = 0001 0111 (binary) = ? (hex) • 3F9(hex) = ? (binary) COMP3221: Microprocessors and Embedded Systems--Lecture 1

  7. Hex to Binary Conversion • HEX is a more compact representation of Binary! • Each hex digit represents 16 decimal values. • Four binary digits represent 16 decimal values. • Therefore, each hex digit can replace four binary • digits. • Example: • 0011 1011 1001 1010 1100 1010 0000 0000two • 3 b 9 a c a 0 0hexC uses notation 0x3b9aca00 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  8. Which Base Should We Use? • Decimal: Great for humans; most arithmetic is done with these. • Binary: This is what computers use, so get used to them. Become familiar with how to do basic arithmetic with them (+,-,*,/). • Hex: Terrible for arithmetic; but if we are looking at long strings of binary numbers, it’s much easier to convert them to hex in order to look at four bits at a time. COMP3221: Microprocessors and Embedded Systems--Lecture 1

  9. How Do We Tell the Difference? • In general, append a subscript at the end of a number stating the base: • 1010 is in decimal • 102 is binary (= 210) • 1016 is hex (= 1610) • When dealing with AVR microcontrollers: • Hex numbers are preceded with “$” or “0x” • $10 == 0x10 == 1016 == 1610 • Binary numbers are preceded with “0b” • Octal numbers are preceded with “0” (zero) • Everything else by default is Decimal COMP3221: Microprocessors and Embedded Systems--Lecture 1

  10. Inside the Computer • To a computer, numbers are always in binary; all that matters is how they are printed out: binary, decimal, hex, etc. • As a result, it doesn’t matter what base a number in C is in... • 3210 == 0x20 == 1000002 • Only the value of the number matters. COMP3221: Microprocessors and Embedded Systems--Lecture 1

  11. Bits Can Represent Everything • Characters? • 26 letter => 5 bits • upper/lower case + punctuation => 7 bits (in 8) (ASCII) • 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 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  12. What if too big? • Numbers really have an infinite number of digits • with almost all being zero except for a few of the rightmost digits: e.g: 0000000 … 000098 == 98 • Just don’t normally show leading zeros • Computers have fixed number of digits • Adding two n-bit numbers may produce an (n+1)-bit result. • Since registers’ length (8 bits on AVR) is fixed, this is a problem. • If the result of add (or any other arithmetic operation), cannot be represented by a register, overflow is said to have occurred COMP3221: Microprocessors and Embedded Systems--Lecture 1

  13. An Overflow Example • Example (using 4-bit numbers): • +15 1111 • +3 0011 • +18 10010 • But we don’t have room for 5-bit solution, so the solution would be 0010, which is +2, which is wrong. COMP3221: Microprocessors and Embedded Systems--Lecture 1

  14. How avoid overflow, allow it sometimes? • Some languages detect overflow (Ada), some don’t (C and JAVA) • AVR has N, Z, C and V flags to keep track of overflow • Will cover details later COMP3221: Microprocessors and Embedded Systems--Lecture 1

  15. Comparison • How do you tell if X > Y ? • See if X - Y > 0 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  16. 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 • On AVR +1ten would be: 0000 0001 • And - 1ten in sign and magnitude would be: 1000 0001 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  17. Shortcomings of sign and magnitude? • Arithmetic circuit more complicated • Special steps depending whether signs are the same or not • Also, two zeros. • 0x00 = +0ten • 0x80 = -0ten(assuming 8 bit integers). • What would it mean for programming? • Sign and magnitude abandoned because another solution was better COMP3221: Microprocessors and Embedded Systems--Lecture 1

  18. Another try: complement the bits • Examples: 710 = 000001112 -710 = 111110002 • Called one’s Complement. • The one’s complement of an integer X is • 2p-X, where p is the number of integer bits. • Questions: • What is -000000002 ? • How many positive numbers in N bits? • How many negative numbers in N bits? COMP3221: Microprocessors and Embedded Systems--Lecture 1

  19. Shortcomings of ones complement? • Arithmetic not too hard • Still two zeros • 0x00 = +0ten • 0xFF = -0ten (assuming 8 bit integers). • One’s complement was eventually abandoned because another solution is better COMP3221: Microprocessors and Embedded Systems--Lecture 1

  20. Two’s Complement • The two’s complement of an integer X is • 2p-X+1, • where p is the number of integer bits • Bit p is the “sign” bit. Negative number if it is 1; positive number otherwise. • Examples: • – 710 = 000001112 -110 = 111111112 • – -210 = 111111102 -710 = 111110012 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  21. Two’s Complement Formula • Given a two’s complement representation • dpdp-1…d1d0, its value is • dp x (–2p)+ dp-1 x 2p-1 + ... + d1 x 21 + d0 x 20 • Example: • – Two’s complement representation 11110011 • = 1x (–27)+ 1x 26 + 1x 25 + 1x 24 + 0x 23 + 0x 22 + 1x 21 + 1x 20 • = 000011012 COMP3221: Microprocessors and Embedded Systems--Lecture 1

  22. Property of Two’s Complement • Let P denote the two’s complement operation. Given any integer X, the following equation holds: • P(P(X))=X COMP3221: Microprocessors and Embedded Systems--Lecture 1

More Related