1 / 81

Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates

Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates. Invitation to Computer Science,. Objectives. In this chapter, you will learn about: The binary numbering system Boolean logic and gates Building computer circuits Control circuits. Introduction.

hcarleton
Télécharger la présentation

Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates

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. Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates Invitation to Computer Science,

  2. Objectives In this chapter, you will learn about: • The binary numbering system • Boolean logic and gates • Building computer circuits • Control circuits Invitation to Computer Science, C++ Version, Third Edition

  3. Introduction • Chapter 4 focuses on hardware design (also called logic design) • How to represent and store information inside a computer • How to use the principles of symbolic logic to design gates • How to use gates to construct circuits that perform operations such as adding and comparing numbers, and fetching instructions Invitation to Computer Science, C++ Version, Third Edition

  4. The Binary Numbering System • A computer’s internal storage techniques are different from the way people represent information in daily lives • Information inside a digital computer is stored as a collection of binary data • Bit = BInary digiT Invitation to Computer Science, C++ Version, Third Edition

  5. Binary Representation of Numbers • Binary numbering system • Base-2 • Built from ones and zeros • Each position is a power of 2 1101 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 • Decimal numbering system • Base-10 • Each position is a power of 10 3052=3* 103+0* 102+5* 101+2* 100 Invitation to Computer Science, C++ Version, Third Edition

  6. Figure 4.2 Binary-to-Decimal Conversion Table Invitation to Computer Science, C++ Version, Third Edition

  7. Conversion from Base 10 to Base 2 • To convert a number n from base 10 to base 2 you must: • Divide n by 2, then its quote by 2 and continue this way until the quote is 0 • Collect all the remainders produced by the divisions performed in Step 1 • Write the remainders in the opposite order they have been produced Invitation to Computer Science, C++ Version, Third Edition

  8. 1*27 + 1*25 + 1*24 +1*21 = 128 + 32 + 16 + 2 =17810 Conversion from Base 10 to Base 2 (cont.) Example: What is 17810 in base 2? 17810= 1011 00102 2 remainder quote 178 0 89 1 44 0 22 0 11 1 5 1 2 0 1 1 0 . . . . . . . . Invitation to Computer Science, C++ Version, Third Edition

  9. Conversion from Base 10 to Base 2 • To convert a number n from base 2 to base 10 you must: • Multiply each digit by 2p where p is the position of the digit. • Of course the digits that are 0 will produce a product equal to zero, so you can limit you attention only to the digits equal to 1 • Add all the products obtained in Step 1. Invitation to Computer Science, C++ Version, Third Edition

  10. Conversion from Base 2 to Base 10 Example: What is 10110112 in base 10? 101 10112 = = 1*26 + 1*24 + 1*23 + 1*21+1*20 = = 64 + 16 + 8 + 2 + 1 = = 9110 101 10112 = 9110 Invitation to Computer Science, C++ Version, Third Edition

  11. Conversion from Base 10 to Base k General Rule: • To convert a number n from base 10 to base k you must: • Divide n by k, then its quote by k and continue this way until the quote is 0 • Collect all the remainders produced by the divisions performed in Step 1 • Write the remainders in the opposite order they have been produced Invitation to Computer Science, C++ Version, Third Edition

  12. Conversion from Base 10 to Base k (cont.) Example: What is 17810 in base 5? 17810=12035 5 remainder quote 178 3 35 0 7 2 1 1 0 . . . . . . . . 1*53 + 2*52 + 0*51 + 3*50 = 125 + 50 + 0 + 3 =17810 Conversion from Base 5 to base 10 Invitation to Computer Science, C++ Version, Third Edition

  13. Conversion from Base k to Base 10 General Rule: • To convert a number n from base k to base 10 you must: • Multiply each digit by kp where p is the position of the digit. • Since the digits that are 0 will produce a product equal to zero, you can skip them. • Add all the products obtained in Step 1. Invitation to Computer Science, C++ Version, Third Edition

  14. Conversion from Base k to Base t with k and t different from 2 or 10 • To convert a number n from base k to base t you must perform two conversions: • Convert n from base k to base 10 • Convert the result from base 10 to base t Invitation to Computer Science, C++ Version, Third Edition

  15. 1*62 + 5*61 +3*60 = 36 + 30 + 3 =6910 4 69 1 17 1 4 0 1 1 0 Answer Conversion from Base k to Base t with k and t different from 2 or 10 Example: What is 1536 in base 4? 1536=6910 First: Convert from Base 6 to base 10 6910 = 10114 Second: Convert the result from Base 10 to base 4 1536= 10114 Invitation to Computer Science, C++ Version, Third Edition

  16. Conversion Algorithms • Base 10 is convenient for us while reading and writing numbers….however for the machine: • The algorithm to convert to base 10 (to display results - output) and the algorithm to convert from base 10 (to insert data - input) require time. • Can we display or insert data in a base different from 10? • Base 2 – • Binary numbers are too long. Better a base closer to 10 • What about 8 or 16? Invitation to Computer Science, C++ Version, Third Edition

  17. Answer 0 1 1 1 1 1 1 1 0 0 1 0 2 Fast conversion between bases that are power of 2 • The power of 2 are special bases (ex. 4, 8, 16,..) • the conversion between these bases is immediate Example: Convert 37628 to base 2 • Since 8 = 23 > 2 we expand each digit in 3 binary digits • This is possible because with 3 bits we can represent 8 distinct numbers in binary 3 7 6 2 8 37628 =111 1111 00102 Invitation to Computer Science, C++ Version, Third Edition

  18. 0 0 1 1 1 0 1 1 0 0 0 0 2 Answer Fast conversion between bases that are power of 2 Example: Convert 3B016 to base 2 • Since 16 = 24 > 2 we expand each digit in 4 binary digits • This is possible because with 4 bits we can represent 16 distinct numbers in binary • In Base 16 there are 16 distinct symbols: • 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 3 B 0 16 3B016 =11 1011 00002 Invitation to Computer Science, C++ Version, Third Edition

  19. 0 1 1 1 0 1 0 1 0 2 1 1 1 0 1 0 1 0 2 Fast conversion between bases that are power of 2 Example 1: Convert 1110 10102 to base 8 • Since 2 < 8=23 we GROUP 3 binary digit in 1 octal digits 3 5 2 8 1110 10102 =3528 Example 2: Convert 1110 10102 to base 16 • Since 2< 16 =24 we GROUP 4 binary digit in 1 hexadecimal digits E A 16 1110 10102=EA16 Invitation to Computer Science, C++ Version, Third Edition

  20. Converting decimal numbers in binary • To convert a decimal number n= int.dec in base 2 you must: • Convert the integer part int as shown so far • Convert the decimal part in this way: • Multiply the decimal part dec by 2, then the decimal part of the product just obtained by 2 and continue this way until the product obtained already occurred or is 0. • Collect all the integer parts produced during the multiplication in Step 2.1 • Write the integers in the same order they have been produced Invitation to Computer Science, C++ Version, Third Edition

  21. 2 178 0 89 1 44 0 22 0 11 1 5 1 2 0 1 1 0 2 0.25  2 = 0.50 0.5  2 = 1.0 1 0 Converting decimal numbers in binary Example: What is 178.2510 in base 2? Step 1: Step 2: 178.2510= 1011 0010. 012 Invitation to Computer Science, C++ Version, Third Edition

  22. Converting decimal numbers in binary Example: What is 0.32510 in base 2? 0.32510= 0. 01010012 2 0.325  2 = 0.650 0.65  2 = 1.30 1 0.30  2 = 0.600 0.60  2 = 1.20 1 0.20  2 = 0.40 0 0.40  2 = 0.80 0 0.80  2 = 1.60 1 0.60 period Invitation to Computer Science, C++ Version, Third Edition

  23. Summary • Conversion of an integer from Base 10 to Base 2 and vice versa • Conversion of an integer from Base 10 to Base k and vice versa • Conversion of an integer from Base k to Base t with k and t different from 2 or 10 • Fast conversion between bases that are power of 2 • Converting decimal numbers in binary Invitation to Computer Science, C++ Version, Third Edition

  24. End of Lesson Invitation to Computer Science, C++ Version, Third Edition

  25. Binary Representation of Numbers • Representing integers • Decimal integers are converted to binary integers • Given k bits, the largest unsigned integer is 2k – 1; the smallest is 0 • with 4 bits, the largest unsigned number is 24-1 = 15 • Signed integers must also represent the sign (positive or negative). 1 bit is used for the sign. • Given k bits, the largest signed integer is 2k-1 - 1; the smallest is –(2k-1 – 1) • with 4 bits, the largest signed number is 23-1 = 7 Invitation to Computer Science, C++ Version, Third Edition

  26. Representation of Numbers Sign Magnitude 1 111 -7 1 110 -6 1 101 -5 1 100 -4 1 011 -3 1 010 -2 1 001 -1 1 000 -0 0 000 +0 0 001 +1 0 010 +2 0 011 +3 0 100 +4 0 101 +5 0 110 +6 0 111 +7 • Signed integer representation • Sign/magnitude notation • 1 bit to represent the sign • N bits to represent the integer • Example: if n=8 + 33 is represented as 0 0100001 - 33 is represented as 1 0100001 + 1 is represented as 0 0000001 - 1 is represented as 1 0000001 What about 0? + 0 is represented as 0 0000000 - 0 is represented as 1 0000000 Big Problem!!! There are two representations for 0!!! Invitation to Computer Science, C++ Version, Third Edition

  27. Representation of Numbers • Signed integer representation • Two’s complement notation • a positive number follows the sign/magnitude notation • a negative number is obtained from the corresponding positive number in two steps: • Flip all the bits (0 becomes 1 and 1 becomes 0) • Add one to the result Invitation to Computer Science, C++ Version, Third Edition

  28. Representation of Numbers • Two’s complement notation Example: assume we use 8 bits precision Q. What is +3310 in two’s complement? A. + 3310 is represented as 0 0100001 Q. What is -3310 in two’s complement? A. - 33 is represented as 1 1011111 Step 1: take +3310 (i.e. 0 0100001) Step 2: flip it (i.e. 1 1011110) Step 3: add 1 to it 1 1011110 + 1 1 1011111 = - 3310 Invitation to Computer Science, C++ Version, Third Edition

  29. Two’s complement 1 1111 -1 1 1110 -2 1 1101 -3 1 1100 -4 1 1011 -5 1 1010 -6 1 1001 -7 1 1000 -8 1 0111 -9 1 0110 -10 1 0101 -11 1 0100 -12 1 0011 -13 1 0010 -14 1 0001 -15 1 0000 -16 00000 +0 0 0001 +1 0 0010 +2 0 0011 +3 0 0100 +4 0 0101 +5 0 0110 +6 0 0111 +7 0 1000 +8 0 1001 +9 0 1010 +10 0 1011 +11 0 1100 +12 0 1101 +13 0 1110 +14 0 1111 +15 Representation of Numbers • Advantages of the two’s complement representation • One representation for the zero • Easy subtractions • Subtractions are simply additions • The sign is embedded in the number! Example: Suppose we use 8 bits precision 15 0000 1111 - 5+ 1111 1011 + 10 10000 1010 - 9 111 10111 - 5+ 111 11011 - 14 1111 10010 overflow Invitation to Computer Science, C++ Version, Third Edition

  30. Representation of Numbers Q: Given n bits precision, what is the intervalof numbers that can be represented? A: • In sign/magnitude the interval is (-2n-1, 2n-1) • Note: the interval is open on both sides! • There are 2 distinct representations of the 0! • In two’s complement the interval is [-2n-1, 2n-1) • Note: the interval is open on one side! Q: With n bits, how many distinct numbers can be represented? A : 2n distinct numbers Invitation to Computer Science, C++ Version, Third Edition

  31. Representation of Numbers • Representing real numbers • Real numbers may be put into binary Scientific Notation •  Mantissa  Bases  Exponent • Number then are normalized so that first significant digit is immediately to the right of the binary point • Then only Mantissa and Exponent are stored. Example: Consider Binary number: +6.2510= +110.012 is Normalized as: +.110012 23 Invitation to Computer Science, C++ Version, Third Edition

  32. 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 Physical Representation of Numbers How to store numbers in memory: Assume that a number is stored in 16 bits storage location • 1 bit for the sign • 9 bits for the mantissa • 1 bit for the sign of the exponent • 5 bits for the exponent +6.2510 = +110.012 = +.110012 23 has • 0 for the sign • 1101 for the mantissa • 0 for the sign of the exponent • 3 for the exponent and in a 16 bits storage location is represented as 0110100000000011 Decimal point Sign Mantissa Sign Exponent Invitation to Computer Science, C++ Version, Third Edition

  33. Sign Mantissa Sign Exponent 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 Sign Mantissa Sign Exponent Physical Representation of Numbers: Examples 3/1610= 1/8+1/1610 = +0.00112 = +.112 2-2 has • 0 for the sign • 11 for the mantissa • 1 for the sign of the exponent • 2 for the exponent and in a 16 bits storage location is represented as 0110000000100010 -19/6410= 1/4+1/32+1/6410 = -0.0100112 = -.100112 2-1 has • 1 for the sign • 10011 for the mantissa • 1 for the sign of the exponent • 1 for the exponent and in a 16 bits storage location is represented as 1100110000100001 Invitation to Computer Science, C++ Version, Third Edition

  34. Binary Representation of Numeric and Textual Information (continued) • Characters are mapped onto binary numbers • ASCII code set (look for the code in your book) • 8 bits per character; 256 character codes • UNICODE code set • 16 bits per character; 65,536 character codes • Text strings are sequences of characters in some encoding • http://ascii-table.com/ Invitation to Computer Science, C++ Version, Third Edition

  35. Binary Representation of Sound • Multimedia data is sampled to store a digital form, with or without detectable differences • Representing sound data • Sound data must be digitized for storage in a computer • Digitizing means periodic sampling of amplitude values Invitation to Computer Science, C++ Version, Third Edition

  36. Binary Representation of Sound (cont.) • From samples, original sound may be approximated • To improve the approximation: • Sample more frequently • Use more bits for each sample value Invitation to Computer Science, C++ Version, Third Edition

  37. Figure 4.5 Digitization of an Analog Signal (a) Sampling the Original Signal (b) Recreating the Signal from the Sampled Values Invitation to Computer Science, C++ Version, Third Edition

  38. Binary Representation of Images • Representing image data • Images are sampled by reading color and intensity values at even intervals across the image • Each sampled point is a pixel • Image quality depends on number of bits at each pixel Invitation to Computer Science, C++ Version, Third Edition

  39. Binary Representation of Images (cont.) • RGB – Encoding scheme • 8 bits per color • [0, 255] distinct values • A pixel in RGB uses 24 bits • Black – absence of colors • 0, 0, 0 • White – all colors together • 255, 255, 255 Example: representation of the above image in RGB 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 255,255,255 0,0,0 0,0,0 0,0,0 255,255,255 255,255,255 255,255,255 0,0,0 0,0,0 0,0,0 255,255,255 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 Invitation to Computer Science, C++ Version, Third Edition

  40. Binary Representation of Images (cont.) Invitation to Computer Science, C++ Version, Third Edition

  41. Storage size of Sound, Images, Movies • Q. What is the total number of bits required to store 3 minutes of standard recording in MP3 over two channels? • 44.100 samples/sec * 16 bits/sec * 180 sec = 127,008,000 bits = 15,876,000 bytes = 15,504 KB = 15.1MB per channel • 15.1MB * 2 channels = 30.2 MB • Q. What is the total number of bits required to store a picture taken from a digital camera with 3,500,000 pixels? • 3,500,000 pixels/image * 24 bits/pixel * 1 image = 84,000,000 bits = 10,500,000 bytes = 10,254 KB = 10MB • Q. What is the total number of bits required to store 5 minutes a movie that shows 30 frames per second and has 3 million of pixels per frame? • 3,000,000 pixels/frame * 24 bits/pixel * 30 frame/sec * 300 sec = 648,000,000,000 bits = 81,000,000,000 bytes = 79,101,562.5 KB = 77,247.6 MB = 75.4 GB Invitation to Computer Science, C++ Version, Third Edition

  42. End of Lesson Invitation to Computer Science, C++ Version, Third Edition

  43. The Reliability of Binary Representation • Electronic devices are most reliable in a bistable environment • Bistable environment • Distinguishing only two electronic states • Current flowing or not • Direction of flow • Computers are bistable: hence binary representations Invitation to Computer Science, C++ Version, Third Edition

  44. Binary Storage Devices • Magnetic core • Historic device for computer memory • Tiny magnetized rings: flow of current sets the direction of magnetic field • Binary values 0 and 1 are represented using the direction of the magnetic field Invitation to Computer Science, C++ Version, Third Edition

  45. Figure 4.9 Using Magnetic Cores to Represent Binary Values Invitation to Computer Science, C++ Version, Third Edition

  46. Binary Storage Devices (continued) • Transistors • Solid-state switches: either permits or blocks current flow • A control input causes state change • Constructed from semiconductors Invitation to Computer Science, C++ Version, Third Edition

  47. Figure 4.11 Simplified Model of a Transistor Invitation to Computer Science, C++ Version, Third Edition

  48. Boolean Logic and Gates: Boolean Logic • Boolean logic describes operations on true/false values • True/false maps easily onto bistable environment • Boolean logic operations on electronic signals may be built out of transistors and other electronic devices Invitation to Computer Science, C++ Version, Third Edition

  49. Boolean Logic (continued) • Boolean operations • a AND b • True only when a is true and b is true • a OR b • True when either a is true or b is true, or both are true • NOT a • True when a is false, and vice versa Invitation to Computer Science, C++ Version, Third Edition

  50. Boolean Logic (continued) • Boolean expressions • Constructed by combining together Boolean operations • Example: (a AND b) OR ((NOT b) AND (NOT a)) • Truth tables capture the output/value of a Boolean expression • A column for each input plus the output • A row for each combination of input values Invitation to Computer Science, C++ Version, Third Edition

More Related