EL 1009 A Introduction to Computer Science Ch






































- Slides: 38
EL 1009 計算機概論 (電子一A) Introduction to Computer Science Ch. 2 Bits, Data Types, and Operations Instructor:Po-Yu Kuo 教師:郭柏佑
Data Representation in a Computer 2
How do we represent data in a computer? At the lowest level, a computer is an electronic machine. n Works by controlling the flow of electrons Easy to recognize two conditions: 1. presence of a voltage – we’ll call this state “ 1” 2. absence of a voltage – we’ll call this state “ 0” 3
Computer is a binary digital system Digital system: • finite number of symbols Binary (base two) system: • has two states: 0 and 1 Basic unit of information is the binary digit, or bit. Values with more than two states require multiple bits. n n n A collection of two bits has four possible states: 00, 01, 10, 11. A collection of three bits has eight possible states: 000, 001, 010, 011, 100, 101, 110, 111. A collection of n bits has 2 n possible states. 4
What kinds of data do we need to represent? n n n n Numbers: – signed, unsigned, integers, floating point, complex, rational, irrational, … Text: characters, strings, … Images: pixels, colors, shapes, … Sound Logical: true, false Instructions … Data type: n Representation and operations within the computer n We will start with numbers… 5
Unsigned Integers n Non-positional notation n Could represent a number (“ 5”) with a string of ones (“ 1111”) n Problems? n Weighted positional notation n Like decimal numbers: “ 329”. n “ 3” is worth 300, because of its position, while “ 9” is only worth 9. most significant 329 102 101 100 3 x 100 + 2 x 10 + 9 x 1 = 329 least significant 101 22 21 20 1 x 4 + 0 x 2 + 1 x 1 = 5 6
Four Number Base System in Mathematic Base (基底) Symbol (符號) Example (例子) Binary Base 2 B 1001 B Octal Base 8 Q or O 176 Q Decimal Base 10 None or D Hexadecimal Base 16 H 25 F 55 AH 7
The Decimal Number System n n n The decimal number system uses base 10 This system includes the digit from 0 to 9 n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 If the decimal number is 6321 or 632110 6 3 2 1 103 102 101 100 The value is (6 x 103)+ (3 x 102)+ (2 x 101)+ (1 x 100) = 6321 8
The Binary Number System n An n-bit unsigned integer represents 2 n values: from 0 to 2 n-1. 22 21 20 0 0 0 1 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 9
The Binary Number System n n The binary number system uses base 2 This system use digit to represent the binary number q 0 and 1 The binary number system is generally used in digital circuit area For example, a binary number is 1011012 Most significant bit MSB 1 0 1 25 24 23 22 21 20 Least significant bit LSB 10
The Binary Number System 1 0 1 1 25 24 23 22 The value in decimal is 0 1 21 20 (1 x 25)+ (0 x 24)+ (1 x 23)+ (1 x 22)+ (0 x 21) + (1 x 20) = 4510 The binary-to-decimal conversion can be done as above. 11
Unsigned Binary Arithmetic n Base-2 addition – just like base-10! n add from right to left, propagating carry 10010 + 1001 11011 10010 + 1011 11101 1111 + 1 10000 10111 + 111 Subtraction, multiplication, division, …. 12
Signed Integers 13
Signed Integers n n n With n bits, we have 2 n distinct values. n assign about half to positive integers (1 through 2 n-1) and about half to negative (- 2 n-1 through -1) n that leaves two values: one for 0, and one extra Positive integers n just like unsigned – zero in most significant (MS) bit 00101 = 5 Negative integers n sign-magnitude – set MS bit to show negative, other bits are the same as unsigned 00101 = 5 -> Take one’s complement n one’s complement – flip every bit to represent negative 11010 n in either case, MS bit indicates sign: 0=positive, 1=negative 14
Two’s Complement n n Problems with sign-magnitude and 1’s complement n two representations of zero (+0 and – 0) n arithmetic circuits are complex Ø How to add two sign-magnitude numbers? - e. g. , try 2 + (-3) Ø How to add two one’s complement numbers? - e. g. , try 4 + (-3) Two’s complement representation developed to make circuits easy for arithmetic. n for each positive number (X), assign value to its negative (-X), such that X + (-X) = 0 with “normal” addition, ignoring carry out 00101 + 11011 00000 01001 (5) (-5) (0) + (9) (-9) 00000 (0) 15
Two’s Complement Representation n n If number is positive or zero, n normal binary representation, zeroes in upper bit(s) If number is negative, n start with positive number n flip every bit (i. e. , take the one’s complement) n then add one 00101 11010 + 1 11011 01001 (5) (1’s comp) + (-5) (9) 1 (-9) 16
Two’s Complement Shortcut n To take the two’s complement of a number: n copy bits from right to left until (and including) the first “ 1” n flip remaining bits to the left 011010000 100101111 + 1 100110000 011010000 (1’s comp) (flip) (copy) 100110000 17
Two’s Complement Signed Integers n n MS bit is sign bit – it has weight – 2 n-1. Range of an n-bit number: -2 n-1 through 2 n-1 – 1. n The most negative number (-2 n-1) has no positive counterpart. -23 22 21 20 0 0 0 1 0 0 0 -8 0 0 0 1 1 1 0 0 1 -7 0 0 1 0 2 1 0 -6 0 0 1 1 3 1 0 1 1 -5 0 1 0 0 4 1 1 0 0 -4 0 1 5 1 1 0 1 -3 0 1 1 0 6 1 1 1 0 -2 0 1 1 1 7 1 1 -1 18
Converting Binary (2’s C) to Decimal 1. If leading bit is one, take two’s complement to get a positive number. 2. Add powers of 2 that have “ 1” in the corresponding bit positions. 3. If original number was negative, add a minus sign. X = 01101000 two = 26+25+23 = 64+32+8 = 104 ten Assuming 8 -bit 2’s complement numbers. n 2 n 0 1 2 3 4 5 6 7 8 9 10 1 2 4 8 16 32 64 128 256 512 1024 19
Converting Binary (2’s C) to Decimal More Examples X = 00100111 two = 25+22+21+20 = 32+4+2+1 = 39 ten X = -X = = = 11100110 two 00011010 24+23+21 = 16+8+2 26 ten X = -26 ten Assuming 8 -bit 2’s complement numbers. n 2 n 0 1 2 3 4 5 6 7 8 9 10 1 2 4 8 16 32 64 128 256 512 1024 20
Converting Decimal to Binary (2’s C) n Method: Division 1. Find magnitude of decimal number. (Always positive. ) 2. Divide by two – remainder is least significant bit. 3. Keep dividing by two until answer is zero, writing remainders from right to left. 4. Append a zero as the MS bit; if original number was negative, take two’s complement. Assuming 8 -bit 2’s complement numbers. 21
Converting Decimal to Binary (2’s C) X = 104 ten 104/2 = bit 0 52/2 = 26 r 0 26/2 = 13 r 0 13/2 = 6 r 1 6/2=3 r 0 3/2=1 r 1 1/2=0 r 1 52 r 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 X=01101000 two MSB LSB Assuming 8 -bit 2’s complement numbers. 22
Operations: Arithmetic and Logical 23
Operations: Arithmetic and Logical Recall: n A data type includes representation and operations. n We now have a good representation for signed integers, so let’s look at some arithmetic operations: n Addition n Subtraction n Sign Extension n We’ll also look at overflow conditions for addition. Multiplication, division, etc. , can be built from these basic operations. 24
Operations: Arithmetic and Logical n Logical operations are also useful: n AND n OR n NOT 25
Addition n As we’ve discussed, 2’s comp. addition is just binary addition n assume all integers have the same number of bits n ignore carry out n for now, assume that sum fits in n-bit 2’s comp. representation 01101000 + 11110000 01011000 11110110 (104) (-16) + (88) (-10) (-9) (-19) Assuming 8 -bit 2’s complement numbers. 26
Subtraction n Negate subtrahend (2 nd no. ) and add n assume all integers have the same number of bits n ignore carry out n for now, assume that sum fits in n-bit 2’s comp. representation 01101000 - 00010000 01101000 + 11110000 01011000 11110110 (104) (16) - (-16) (-9) 11110110 (104) + (88) (-10) (9) (-1) Assuming 8 -bit 2’s complement numbers. 27
Sign Extension n n To add two numbers, we must represent them with the same number of bits. If we just pad with zeroes on the left: 4 -bit 0100 1100 n (4) (-4) 8 -bit 00000100 00001100 (still 4) (12, not -4) Instead, replicate the MS bit -- the sign bit: 4 -bit 0100 1100 (4) (-4) 8 -bit 00000100 11111100 (still 4) (still -4) 28
Overflow n n If operands are too big, then sum cannot be represented as an n-bit 2’s comp number. If we just pad with zeroes on the left: + n n 01000 (8) 01001 (9) 10001 (-15) 11000 (-8) + 10111 (-9) 01111 (+15) Error!!! We have overflow if: n signs of both operands are the same, and n sign of sum is different. Another test -- easy for hardware: n carry into MS bit does not equal carry out 29
Logical Operations n Operations on logical TRUE or FALSE n Two states -- takes one bit to represent: TRUE=1, FALSE=0 A 0 0 1 1 n B A AND B 0 0 1 0 0 0 1 1 A 0 0 1 1 B A OR B 0 0 1 1 1 A NOT A 0 1 1 0 View n-bit number as a collection of n logical values n operation applied to each bit independently 30
Example of Logical Operations n AND n useful for clearing bits n n n OR n useful for setting bits n n n AND with zero = 0 AND with one = no change 11000101 AND 00001111 00000101 OR with zero = no change OR with one = 1 NOT n flips every bit OR NOT 11000101 00001111 11000101 00111010 31
Hexadecimal Notation n It is often convenient to write binary (base-2) numbers as hexadecimal (base-16) numbers instead. n fewer digits -- four bits per hex digit n less error prone -- easy to corrupt long string of 1’s and 0’s Binary Hex Decimal 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 8 9 A B C D E F 8 9 10 11 12 13 14 15 32
Converting from Binary to Hexadecimal n Every four bits is a hex digit. n start grouping from right-hand side 011 1010 1000 1111 0100 1101 0111 3 A 8 F 4 D 7 This is not a new machine representation, just a convenient way to write the number. 33
Fractions: Fixed-Point n How can we represent fractions? n Use a “binary point” to separate positive from negative powers of two -- just like “decimal point. ” n 2’s comp addition and subtraction still work. n if binary points are aligned 2 -1 = 0. 5 2 -2 = 0. 25 2 -3 = 0. 125 00101000. 101 (40. 625) + 11111110. 110 (-1. 25) 00100111. 011 (39. 375) No new operations -- same as integer arithmetic. 34
Very Large and Very Small: Floating-Point n n n Large values: 6. 023 x 1023 -- requires 79 bits Small values: 6. 626 x 10 -34 -- requires >110 bits Use equivalent of “scientific notation”: F x 2 E Need to represent F (fraction), E (exponent), and sign. IEEE 754 Floating-Point Standard (32 -bits): 1 b 8 b S Exponent 23 b Fraction 35
Floating Point Example n Single-precision IEEE floating point number: 1 01111110 100000000000 sign exponent n n n fraction Sign is 1 – number is negative. Exponent field is 01111110 = 126 (decimal). Fraction is 0. 1000000… = 0. 5 (decimal). Value = -1. 5 x 2(126 -127) = -1. 5 x 2 -1 = -0. 75. 36
Text: ASCII Characters n ASCII: Maps 128 characters to 7 -bit code. n both printable and non-printable (ESC, DEL, …) characters 00 01 02 03 04 05 06 07 08 09 0 a 0 b 0 c 0 d 0 e 0 f nul soh stx eot enq ack bel bs ht nl vt np cr so si 10 11 12 13 14 15 16 17 18 19 1 a 1 b 1 c 1 d 1 e 1 f dle dc 1 dc 2 dc 3 dc 4 nak syn etb can em sub esc fs gs rs us 20 21 22 23 24 25 26 27 28 29 2 a 2 b 2 c 2 d 2 e 2 f sp ! " # $ % & ' ( ) * + , . / 30 31 32 33 34 35 36 37 38 39 3 a 3 b 3 c 3 d 3 e 3 f 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 40 41 42 43 44 45 46 47 48 49 4 a 4 b 4 c 4 d 4 e 4 f @ A B C D E F G H I J K L M N O 50 51 52 53 54 55 56 57 58 59 5 a 5 b 5 c 5 d 5 e 5 f P Q R S T U V W X Y Z [ ] ^ _ 60 61 62 63 64 65 66 67 68 69 6 a 6 b 6 c 6 d 6 e 6 f ` a b c d e f g h i j k l m n o 70 71 72 73 74 75 76 77 78 79 7 a 7 b 7 c 7 d 7 e 7 f p q r s t u v w x y z { | } ~ del 37
Homework#1 1. 習題2. 3, 2. 6, 2. 10, 2. 11, 2. 13, 2. 14, 2. 17, 2. 34, 2. 45, 2. 47. 繳交期限: 2016/10/11。 38






































