Digital Logic and Circuit Design ENE 232 Digital Logic and Circuit Design 1/2555 A. Yaicharoen
ระบบตัวเลขและการคำนวณทางคณิตศาสตร์ วัตถุประสงค์ของบทเรียน รู้จักระบบเลขฐานต่างๆ วิธีการแปลงฐานเลข วิธีการคำนวณทางคณิตศาสตร์ 1/2555 A. Yaicharoen
ระบบตัวเลข เลขฐานที่ควรจะรู้จัก - เลขฐานสอง (binary) - เลขฐานแปด (octal) - เลขฐานสิบ (decimal) - เลขฐานสิบหก (hexadecimal) การแปลงฐานเลข - การแปลงเลขฐานใดๆ เป็นเลขฐานสิบ - การแปลงเลขฐานสิบเป็นฐานอื่นๆ - การแปลงเลขฐาน a เป็นเลขฐาน b 1/2555 A. Yaicharoen
Number Representation Unsigned number representation N = an an-1 ... a1 a0. a-1 a-2 ... a-m สำหรับค่าของ N ในฐาน r ใดๆจะเท่ากับ anrn+an-1rn-1+…+a0r0+a-1r-1+…+a-mr-m และ 0 ≤ a < r ตัวอย่างเช่น ค่าของ N ในฐานสิบจะเท่ากับ an10n+an-110n-1+…+a0100+a-110-1+…+a-m10-m และ 0 ≤ a < 10 1/2555 A. Yaicharoen
Number Representation Signed number representation s represents a sign bit; 0s:positive, 1s:negative Positive numbers: 0sN Negative numbers: 1. Sign-magnitude representation: 1sN 1/2555 A. Yaicharoen
Number Representation Signed number representation (continued) Negative numbers: 2. Signed r’s-complement representation 1s(rn+1-N) 3. Signed (r-1)’s-complement representation 1s(rn+1-r-m-N) 1/2555 A. Yaicharoen
Base Conversion Iterative method: ใช้ในการแปลงฐานสิบเป็นฐาน n ใดๆ integers: ใช้วิธีการหาร fractions: ใช้วิธีการคูณ Special method ใช้กับการแปลงเลขฐานสอง, ฐานแปด และฐานสิบหก 1/2555 A. Yaicharoen
Iterative Method 1. ส่วนของการเปลี่ยนฐานในส่วนที่เป็นจำนวนเต็ม - ใช้วิธีการหารสั้นด้วยเลขฐานเป้าหมาย - นำเศษที่ได้มาเรียงลำดับจากล่างขึ้นบนเพื่อเป็นคำตอบ 2. ส่วนของการเปลี่ยนฐานในส่วนที่เป็นเลขทศนิยม - ใช้วิธีการคูณด้วยเลขฐานเป้าหมาย - นำผลของจำนวนเต็มที่ได้จากการคูณมาเรียงลำดับ จากบนลงล่างเพื่อเป็นคำตอบ 1/2555 A. Yaicharoen
Iterative Method = 111102 ตัวอย่าง แปลง 30.7510 เป็นฐานสอง 30 2 = 15 เศษ 0 15 2 = 7 เศษ 1 7 2 = 3 เศษ 1 3 2 = 1 เศษ 1 1 2 = 0 เศษ 1 = 111102 0.75 0.50 30.7510 = 11110.1102 1/2555 A. Yaicharoen
Iterative Method ส่วนของการเปลี่ยนฐานที่เป็นเลขทศนิยม กรณีที่ผลคูณไม่เป็น 0 ให้หยุดกระบวนการคูณเมื่อคำตอบมีจำนวนหลัก เท่ากับ k หลักซึ่งทำให้เกิดค่าผิดพลาดไม่เกิน ค่าผิดพลาดที่ยอมรับได้ สูตรคำนวณสำหรับหาจำนวนหลักหลังทศนิยมของ เลขฐาน r คือ r-k < error 1/2555 A. Yaicharoen
Special Method ใช้กับการแปลงเลขในกลุ่ม ฐานสอง แปด และ สิบหก ฐานสอง 4 หลัก = ฐานสิบหก 1 หลัก ฐานสอง 3 หลัก = ฐานแปด 1 หลัก ตัวอย่าง แปลง 01010111011.100102 เป็นฐานแปด และ สิบหก 01010111011.100102 = 001 010 111 011. 100 1002 = 1273.448 = 0010 1011 1011. 1001 00002 = 2BB.9016 1/2555 A. Yaicharoen
Mathematical Operations การบวก การลบ การลบเลขฐานสองด้วยวิธีการบวก r’s complement (r-1)’s complement การคูณ การหาร การคูณและการหารเลขฐานสอง 1/2555 A. Yaicharoen
การบวก การบวกเลขฐานใดๆ สามารถใช้วิธีการบวกเหมือนเลขฐานสิบ แต่ต้องระวังในเรื่องของผลบวกจะต้องไม่เกินฐานของเลขนั้นๆ ตัวอย่าง หาผลลัพท์ของ 7268 + 1438 จะได้คำตอบคือ 7 2 68 + 1 4 38 = 1 0 7 18 1/2555 A. Yaicharoen
การหา complement Complement หา r’s complement จาก rn+1-N rn+1-r-m-N 1/2555 A. Yaicharoen
การลบด้วยวิธีบวกด้วย r’s complement พิจารณาตัวทดที่ได้จากผลบวกตัวหน้าสุด (most significant digit) 3.1 ถ้าเป็น 1 ให้ตัดทิ้ง ผลที่ได้จะเป็นคำตอบในรูปจำนวนบวก 3.2 ถ้าเป็น 0 ให้ตัดทิ้ง ผลที่ได้จะเป็นจำนวนลบในรูป r’s complement 1/2555 A. Yaicharoen
การใช้ r’s complement ตัวอย่าง: หาคำตอบของ 4010 - 3210 โดยใช้วิธีการบวกด้วย 2’s complement วิธีทำ: หารูปฐานสองของ 4010 และ 3210 4010 = 1010002, 3210 = 1000002; รูป 2’s complement ของ -3210 คือ = 1000002 1010002 + 1000002 = 1 0010002 carry = 1; คำตอบเป็นบวก เท่ากับ 810 1/2555 A. Yaicharoen
การใช้ r’s complement ตัวอย่าง: หาคำตอบของ 3210 - 4010 โดยใช้วิธีการบวกด้วย 2’s complement วิธีทำ: หารูปฐานสองของ 3210 และ 4010 3210 = 1000002, 4010 = 1010002; รูป 2’s complement ของ 4010 คือ = 0110002 1000002 + 0110002 = 0 1110002 carry = 0; คำตอบเป็นลบ อยู่ในรูป 2’s complement เท่ากับ -810 1/2555 A. Yaicharoen
การใช้ r-1’s complement พิจารณาตัวทดที่ได้จากผลบวกตัวหน้าสุด (most significant digit) 3.1 ถ้าเป็น 1 ให้นำมาบวกกับผลลัพท์ ผลที่ได้จะเป็นคำตอบในรูปจำนวนบวก 3.2 ถ้าเป็น 0 ให้ตัดทิ้ง ผลที่ได้จะเป็นจำนวนลบในรูป r-1’s complement 1/2555 A. Yaicharoen
การใช้ r-1’s complement วิธีทำ: หารูปฐานสองของ 4010 และ 3210 4010 = 1010002, 3210 = 1000002; รูป 1’s complement ของ -3210 คือ = 0111112 1010002 + 0111112 = 1 0001112 carry = 1; ให้นำมาบวกกับคำตอบ ผลที่ได้จะเป็นบวก 0001112 + 12 = 0010002 ซึ่งเท่ากับ 810 1/2555 A. Yaicharoen
การใช้ r-1’s complement วิธีทำ: หารูปฐานสองของ 3210 และ 4010 3210 = 1000002, 4010 = 1010002; รูป 1’s complement ของ -4010 คือ = 0101112 1000002 + 0101112 = 0 1101112 carry = 0; คำตอบเป็นลบ อยู่ในรูป 1’s complement ซึ่งจะมีค่าเท่ากับ -810 1/2555 A. Yaicharoen
การคูณเลขฐานสอง การคูณเลขฐานสอง: 1. ใช้วิธีการคูณแบบปกติหรือ 2. ถ้าตัวคูณอยู่ในรูป 2n ให้เลื่อนตัวตั้งไปทางซ้ายเท่ากับ n บิต (จำนวนบิตที่เป็น 0 ที่อยู่หลังเลข 1 ในตัวคูณ) แล้วเติม 0 เข้าไปแทนตำแหน่งที่ว่างข้างหลัง (least significant bit) ตัวอย่าง หาผลลัพท์ของ 01102 01002 จะเห็นว่าต้องมีการเลื่อนข้อมูล 01102 ไปทางซ้ายสองครั้ง 0110xx2 (ให้ x แทนตำแหน่งว่างที่เกิดขึ้น) แล้วเติม 0 เข้าไปแทนตำแหน่งที่ว่างจะได้คำตอบเท่ากับ 0110002 1/2555 A. Yaicharoen
การหารเลขฐานสอง การหารเลขฐานสอง: 1. ใช้วิธีการหารแบบปกติหรือ 2. ถ้าตัวหารอยู่ในรูป 2n ให้เลื่อนตัวตั้งไปทางขวาเท่ากับ n บิต (จำนวนบิตที่เป็น 0 ที่อยู่หลังเลข 1 ในตัวคูณ) แล้วเติม 0 เข้าไปแทนตำแหน่งที่ว่างข้างหน้า (most significant bit) ตัวอย่าง หาผลลัพท์ของ 10002 01002 จะเห็นว่าต้องมีการเลื่อนข้อมูล 10002 ไปทางขวาสองครั้ง xx102 (ให้ x แทนตำแหน่งว่างที่เกิดขึ้น) แล้วเติม 0 เข้าไปแทนตำแหน่งที่ว่างจะได้คำตอบเท่ากับ 00102 1/2555 A. Yaicharoen
การคูณและการหารเลขฐานสอง กรณีตัวคูณและตัวหารไม่ได้อยู่ในรูป 2n แต่ต้องการใช้วิธีเลื่อนซ้ายหรือเลื่อนขวา จะต้องทำอย่างไร 1/2555 A. Yaicharoen