Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS103 Guest Lecture Number Systems & Conversion Bitwise Logic Operations.

Similar presentations


Presentation on theme: "1 CS103 Guest Lecture Number Systems & Conversion Bitwise Logic Operations."— Presentation transcript:

1 1 CS103 Guest Lecture Number Systems & Conversion Bitwise Logic Operations

2 2 Why 1’s and 0’s Transistors are electronic devices used to build computer hardware – Like a switch (2 positions) – Conducting / Non-conducting – Output voltage of a transistor will either be high or low 1’s and 0’s are arbitrary symbols representing high and low voltage outputs. 2 states of the transistor lead to only 2 values in computer hardware Low Voltage 0V -12V High Voltage +5V +12V 1 0 or on off Controlling Input (Gate) Output (Drain) Source The voltage here determines if current can flow between drain and source Schematic Symbol of a Transistor Functional View of a Transistor as a Switch circuit is open (off) – no current can flow circuit is closed (on) – current can flow Circuit Diagram of a Switch - - - - ----

3 3 POSITIONAL NUMBER SYSTEMS

4 4 Interpreting Binary Strings Given a string of 1’s and 0’s, you need to know the representation system being used, before you can understand the value of those 1’s and 0’s. Information (value) = Bits + Context (System) 01000001 = ? 65 10 ‘A’ ASCII Unsigned Binary system ASCII system Signed System

5 5 Binary Number System Humans use the decimal number system – Based on number 10 – 10 digits: [0-9] Because computer hardware uses digital signals with 2 states, computers use the binary number system – Based on number 2 – 2 binary digits (a.k.a bits): [0,1]

6 6 Number Systems Number systems consist of 1.A base (radix) r 2.r coefficients [0 to r-1] Human System: Decimal (Base 10): 0,1,2,3,4,5,6,7,8,9 Computer System: Binary (Base 2): 0,1 Human systems for working with computer systems (shorthand for human to read/write binary) – Octal (Base 8): 0,1,2,3,4,5,6,7 – Hexadecimal (Base 16): 0-9,A,B,C,D,E,F (A thru F = 10 thru 15)

7 7 Anatomy of a Decimal Number A number consists of a string of explicit coefficients (digits). Each coefficient has an implicit place value which is a power of the base. The value of a decimal number (a string of decimal coefficients) is the sum of each coefficient times it place value radix (base) (934) 10 = (3.52) 10 =

8 8 Anatomy of a Decimal Number A number consists of a string of explicit coefficients (digits). Each coefficient has an implicit place value which is a power of the base. The value of a decimal number (a string of decimal coefficients) is the sum of each coefficient times it place value Explicit coefficients Implicit place values radix (base) (934) 10 = 9*10 2 + 3*10 1 + 4*10 0 = 934 (3.52) 10 = 3*10 0 + 5*10 -1 + 2*10 -2 = 3.52

9 9 Positional Number Systems (Unsigned) A number in base r has place values/weights that are the powers of the base Denote the coefficients as: a i r -1 r -2 r 1 r 0. r 2 r 3 Left-most digit = Most Significant Digit (MSD) Right-most digit = Least Significant Digit (LSD)... a -1 a -2 a 1 a 0 a 2 a 3 N r = Σ i (a i *r i ) = D 10

10 10 Examples (746) 8 = (1A5) 16 =

11 11 Examples (746) 8 = 7*8 2 + 4*8 1 + 6*8 0 = 448 + 32 + 16 = 486 10 (1A5) 16 = 1*16 2 + 10*16 1 + 5*16 0 = 256 + 160 + 5 = 421 10

12 12 Anatomy of a Binary Number Same as decimal but now the coefficients are 1 and 0 and the place values are the powers of 2 (1011) 2 = 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 Least Significant Bit (LSB) Most Significant Digit (MSB) coefficients place values = powers of 2 radix (base)

13 13 Binary Examples (1001.1) 2 = (10110001) 2 =

14 14 Binary Examples (1001.1) 2 = 8 + 1 + 0.5 = 9.5 10.51248 (10110001) 2 = 128 + 32 + 16 + 1 = 177 10 16321281

15 15 Powers of 2 2 0 = 1 2 1 = 2 2 2 = 4 2 3 = 8 2 4 = 16 2 5 = 32 2 6 = 64 2 7 = 128 2 8 = 256 2 9 = 512 2 10 = 1024 51225612864321684211024

16 16 Practice On Your Own (11010) 2 = 1*2 4 + 1*2 3 + 1*2 1 = 16 + 8 + 2 = (26) 10 (6523) 8 = 6*8 3 + 5*8 2 + 2*8 1 + 3*8 0 = 3072 + 320 + 16 + 3 = (3411) 10 (AD2) 16 = 10*16 2 + 13*16 1 + 2*16 0 = 2560 + 208 + 2 = (2770) 10 Decimal equivalent is… … the sum of each coefficient multiplied by its implicit place value (power of the base) = Σ i (a i * r i ) [a i = coefficient, r = base]

17 17 Shifting in Binary Move bits to the left or right with 0's shoved in one side and dropping bits on the other Useful for multiplying and dividing by power of 2. – Right shift by n-bits = Dividing by 2 n – Left shift by n-bits = Multiplying by 2 n 0 0... 0 0 1 1 Right Shift by 2 bits:... 0 1 1 0 0 0 0 0 Left Shift by 3 bits: 0’s shifted in… 0... 0 1 1 0 0 = +12 = +3= +96

18 18 Bottom-Up Conversion & Shifting X = 011 2 = 0110 2 01101 2 011010 2

19 19 Unique Combinations Given n digits of base r, how many unique numbers can be formed? r n – What is the range? [0 to r n -1] r n Main Point: Given n digits of base r, r n unique numbers can be made with the range [0 - (r n -1)] 2-digit, decimal numbers (r=10, n=2) 3-digit, decimal numbers (r=10, n=3) 4-bit, binary numbers (r=2, n=4) 6-bit, binary numbers (r=2, n=6) 0-9 100 combinations: 00-99 0-1 1000 combinations: 000-999 16 combinations: 0000-1111 64 combinations: 000000-111111

20 20 CONVERSION FROM DECIMAL TO OTHER BASE

21 21 Conversion: Base 10 to Base r X 10 = (?) r General Method (base 10 to arbitrary base r) – Division Method for integer portion or number Alternate Method – Left-to-right (greedy) approach (45) 10 = (?) r

22 22 Division Method Explanation 2424 23232 2121 2020 a4a4 a3a3 a2a2 a1a1 a0a0 45 10 = 45 10 = a 4 2 4 + a 3 2 3 + a 2 2 2 + a 1 2 1 + a 0 2 0 0. 2 2 22.5 10 = a 4 2 3 + a 3 2 2 + a 2 2 1 + a 1 2 0 + a 0 2 -1

23 23 Binary Division Method Example 45 10 = (??) 2

24 24 Binary Division Method Example 45 10 = (??) 2 45 22 2 2 112 52 0 Keep dividing until you reach 0 rem. = 1 rem. = 0 rem. = 1 MSB LSB 45 10 = (101101) 2 Remainders form the number in base r (order from bottom up) 22 12 rem. = 0 rem. = 1

25 25 Division Method Converts integer portion of a decimal number to base r Informal Algorithm – Repeatedly divide number by r until equal to 0 – Remainders form coefficients of the number base r – Remainder from last division = MSD (most significant digit) 193 10 = (??) 5 193 38 5 5 75 15 0 Keep dividing until you reach 0 rem. = 3 rem. = 2 rem. = 1 MSD LSD 193 10 = (1233) 5 Remainders form the number in base r (order from bottom up)

26 26 How number conversion works Each time we divide by r, another coefficient “falls out” and all the other place values are reduced by a factor of r. 45 10 = a 4 a 3 a 2 a 1 a 0 2 4 2 3 2 2 2 1 2 0 45 10 = a 4 2 4 + a 3 2 3 + a 2 2 2 + a 1 2 1 + a 0 2 0 45 10 = a 4 2 4 + a 3 2 3 + a 2 2 2 + a 1 2 1 + a 0 2 0 = a 4 2 3 + a 3 2 2 + a 2 2 1 + a 1 2 0 + a 0 22 2 Quotient Rem. a 4 2 3 + a 3 2 2 + a 2 2 1 + a 1 2 0 = a 4 2 2 + a 3 2 1 + a 2 2 0 + a 1 2 2 QuotientRem. More bits may be required for this actual example, but we'll use 5 to illustrate… This is just explanation for what you've learned…Focus on the conversion process outlined earlier

27 27 How number conversion works Each time we divide by r, another coefficient “falls out” and all the other place values are reduced by a factor of r. a 0 is the remainder D 10 written as coefficients * place values Factor r out of numerator terms with a n-1 – a 1 This is just explanation for what you've learned…Focus on the conversion process outlined earlier

28 28 Left-To-Right Method An alternative to the division method To convert a decimal number, x, to binary: – Only coefficients of 1 or 0. So simply find place values that add up to the desired values, starting with larger place values and proceeding to smaller values and place a 1 in those place values and 0 in all others 168421 25 10 = 111 32 For 25 10 the place value 32 is too large to include so we include 16. Including 16 means we have to make 9 left over. Include 8 and 1. 000

29 29 Left-To-Right Binary Examples 73 10 = 1286432168421.5.25.125.0625.03125 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 87 10 = 145 10 = 0.625 10 =

30 30 Left-To-Right In Other Bases Can use the left-to-right method to convert a decimal number, x, to any base r: – Use the place values of base r (powers of r). Starting with largest place values, fill in coefficients that sum up to desired decimal value without going over. 161 75 10 =4B 256 0 hex

31 31 SHORTHAND FOR BINARY Hexadecimal and Octal

32 32 Binary, Octal, and Hexadecimal Octal (base 8 = 2 3 ) 1 Octal digit ( _ ) 8 can represent: 0 – 7 3 bits of binary (_ _ _) 2 can represent: 000-111 = 0 – 7 1 Octal digit = 3 bits Conclusion… 1 Octal digit = 3 bits Hex (base 16=2 4 ) 1 Hex digit ( _ ) 16 can represent: 0-F (0-15) 4 bits of binary (_ _ _ _) 2 can represent: 0000-1111= 0-15 1 Hex digit = 4 bits Conclusion… 1 Hex digit = 4 bits

33 33 Binary to Octal or Hex Make groups of 3 bits starting from radix point and working outward Add 0’s where necessary Convert each group of 3 to an octal digit 101001110.11 0 00000 Make groups of 4 bits starting from radix point and working outward Add 0’s where necessary Convert each group of 4 to an octal digit 516.6 8 14E.C 16 516614EC

34 34 Octal or Hex to Binary Expand each octal digit to a group of 3 bits Expand each hex digit to a group of 4 bits 317.2 8 D93.8 16 011001111.010 2 110110010011.1000 2 11001111.01 2 110110010011.1 2

35 35 LOGIC OPERATIONS

36 36 Bitwise Logical Operations B1B2F 000 010 100 111 AND B1 B2 Pass Force '0' Z X Y XOR B1 B2 F B1B2F 000 011 101 110 Pass Invert B1B2F 000 011 101 111 Pass Force '1' B1 B2 OR 0 | x = x 1 | x = 1 x | x = x 0 & x = 0 1 & x = x x & x = x 0 ^ x = x 1 ^ x = ~ x x ^ x = 0 XF 10 01 F = X or ~X

37 37 Logical Operations Logic operations on numbers means performing the operation on each pair of bits 0xF0 AND 0x3C 0x30 1111 0000 AND 0011 1100 0011 0000 0xF0 OR 0x3C 0xFC 1111 0000 OR 0011 1100 1111 1100 0xF0 XOR 0x3C 0xCC 1111 0000 XOR 0011 1100 1100 1100 NOT 0xAC 0x53 NOT 1010 1100 0101 0011

38 38 Logical Operations The C language has two types of logic operations – Logical and Bitwise Logical Operators (&&, ||, !) – Operate on the logical value of a FULL variable (char, int, etc.) interpreting that value as either True (non-zero) or False (zero) char x = 1, y = 2, z; z = x && y; – Result is z = 1; Why? Bitwise Logical Operators (&, |, ^, ~) – Operate on the logical value of INDIVIDUAL bits in a variable char x = 1, y = 2, z; z = x & y; – Result is z = 0; Why?

39 39 Logical Operations Logic operations on numbers means performing the operation on each pair of bits 0x7A AND 0xEC 0x30 0x36 OR 0x91 0xFC 0x3C 0x78 XOR 0x3C 0x78

40 40 Look Toward LFSR PA One of your next PA's will utilize the bitwise XOR operator and leverage the fact that: – a ^ b ^ a = b Proof:

41 41 Logical Operations Bitwise logic operations are often used for "bit fiddling" – Change the value of a bit in a register w/o affecting other bits – C operators: & = AND, | = OR, ^ = XOR, ~ = NOT Examples (Assume an 8-bit variable, v) – Clear the LSB to '0' w/o affecting other bits v = v & 0xfe; – Set the MSB to '1' w/o affecting other bits v = v | 0x80; – Flip the LS 4-bits w/o affecting other bits v = v ^ 0x0f; ? v ??????? 7 & _________________ ? v ??????0 ? v ??????? | ? v ??????1 ? v ??????? ^ 0 0 0 0 1 1 1 1 ? v ??????? Bit # 6543210

42 42 Exercises for Practice Q1-Q15 on the posted worksheet – http://bits.usc.edu/files/cs103/coursework/Numb erSys.pdf http://bits.usc.edu/files/cs103/coursework/Numb erSys.pdf


Download ppt "1 CS103 Guest Lecture Number Systems & Conversion Bitwise Logic Operations."

Similar presentations


Ads by Google