1 / 50

ดิจิตอลลอจิกและโครงสร้างคอมพิวเตอร์ บทที่ 2

ดิจิตอลลอจิกและโครงสร้างคอมพิวเตอร์ บทที่ 2. รองศาสตราจารย์ธีรวัฒน์ ประกอบผล. ระบบตัวเลขและรหัส. ระบบตัวเลข. ระบบเลขฐานสองและเลขฐานสิบ การแปลงเลขฐานระหว่างฐานสองกับฐานสิบ ระบบเลขฐานแปด การแปลงเลขฐานระหว่างฐานสองกับฐานแปด การแปลงเลขฐานระหว่างฐานสิบกับแปด ระบบเลขฐานสิบหก

selima
Télécharger la présentation

ดิจิตอลลอจิกและโครงสร้างคอมพิวเตอร์ บทที่ 2

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. ดิจิตอลลอจิกและโครงสร้างคอมพิวเตอร์บทที่ 2 • รองศาสตราจารย์ธีรวัฒน์ ประกอบผล

  2. ระบบตัวเลขและรหัส

  3. ระบบตัวเลข • ระบบเลขฐานสองและเลขฐานสิบ การแปลงเลขฐานระหว่างฐานสองกับฐานสิบ • ระบบเลขฐานแปด การแปลงเลขฐานระหว่างฐานสองกับฐานแปด การแปลงเลขฐานระหว่างฐานสิบกับแปด • ระบบเลขฐานสิบหก การแปลงเลขฐานระหว่างฐานสองกับฐานสิบหก การแปลงเลขฐานระหว่างฐานสิบกับฐานสิบหก

  4. ระบบตัวเลข เครื่องคอมพิวเตอร์มีการประมวลผลด้วยระบบดิจิตอล ในการติดต่อกับระบบคอมพิวเตอร์จะต้องใช้ชุดคำสั่งต่างๆ และชุดคำสั่งที่คอมพิวเตอร์รู้จักจะเป็นในรูปแบบเลขฐานสอง โครงสร้างพื้นฐานที่ใช้ แทนค่าข้อมูล และคำสั่งในหน่วยความจำของระบบคอมพิวเตอร์ คือ บิต,ไบต์ สิ่งที่ระบบคอมพิวเตอร์เข้าใจ คือ การตีความจากค่าของบิตต่างๆ ซึ่งจะถูกมองเป็นเลขฐานสอง

  5. ระบบเลขฐานสองและเลขฐานสิบระบบเลขฐานสองและเลขฐานสิบ ในระบบดิจิตอลมีระดับสัญญาณทางไฟฟ้าสองระดับ การแทนค่าระดับสัญญาณทางไฟฟ้าจะใช้เลขฐานสอง โดยเลขฐานสองเรียกว่า บิต ถ้าจะใช้ระบบตัวเลขแทนค่าสัญญาณดิจิตอลหลายๆบิต จะใช้เลขฐานสิบหกแทน เราสามารถเปรียบเทียบเลขฐานสองและเลขฐานสิบได้ โดยนำค่าแต่ละบิตคูณกับค่าน้ำหนักของแต่ละบิตแล้วนำมารวมกัน โดยค่าน้ำหนักของแต่ละบิตหาได้จากค่ายกกำลังของตำแหน่งบิตนั้น

  6. ตัวอย่างการแปลงเลขฐานสองเป็นเลขฐานสิบ11012 = (1 x 23 ) + (1 x 22 ) + (0 x 21 ) + (1 x 20 ) = 8 + 4 + 0 + 1 = 13 00112 = (1 x 21 ) + (1 x 20 ) = 3

  7. การแปลงเลขฐานสิบเป็นเลขฐานสองการแปลงเลขฐานสิบเป็นเลขฐานสอง มี 2 วีธี คือ วิธีการลบและวิธีการหาร วิธีการลบ ทำได้โดยนำค่ากำลังของสองค่าสูงสุดที่สามารถลบค่าเลขฐานสิบได้ไปลบ จากนั้นแทนค่าบิตนี้เป็นค่า “1” และเป็นบิตสูงสุด เศษที่ได้จากการลบให้นำค่าสองยกกำลังค่าที่ต่ำลงมาไปลบ ถ้าลบให้ได้เป็น “1” และลบต่อไปเรื่อยๆ ถ้าลบไม่ได้ให้เป็น “0”และนำค่าสองยกกำลังต่ำลงมาไปลบแทน

  8. ตัวอย่างการแปลงเลข 4910 เป็นเลขฐานสองทำได้ดังนี้ 49- 32 25 กำลังสูงสุดที่ลบจาก 49 ได้ 17 - 16 24 กำลังสูงสุดที่ลบจาก 16 ได้ 1- 1 20 กำลังสูงสุดที่ลบจาก 1 ได้ 0 ลบต่อไม่ได้ จากนั้นเขียนค่า “1” ตำแหน่งกำลังของสองที่สามารถลบได้ ถ้าลบไม่ได้ให้เขียน “0” จะได้49 = 1100012

  9. วิธีการหาร วิธีนี้จะนำฐานสิบมาหารด้วยสองไปเรื่อยๆ และนำเศษที่เหลือมาเขียนเป็นเลขฐานสอง โดยค่าแรกจะเป็นบิตต่ำ และนำผลหารที่ได้มาหารด้วยสองต่อไป ตัวอย่าง การแปลงเลข 4910 เป็นเลขฐานสองทำได้ดังนี้ 49 / 2 = 24 เหลือเศษ 1 (บิตต่ำสุด) 24 / 2 = 12 เหลือเศษ 0 12 / 2 = 6 เหลือเศษ 0 6 / 2 = 3 เหลือเศษ 0 3 / 2 = 1 เหลือเศษ 1 1 / 2 = 0 เหลือเศษ 1 (บิตสูงสุด) นำเศษที่ได้มาเขียนเป็นเลขฐานสองจะได้เป็น 1 1 0 0 0 1

  10. ระบบเลขฐานแปด ระบบเลขฐานแปดนี้จะใช้สัญลักษณ์แทน 8 ตัวคือ 0,1,2,3,4,5,6 และ 7 การแปลงเลขฐานแปดเป็นเลขฐานสิบทำได้โดยนำค่าแต่ละหลักคูณกับค่าน้ำหนักของแต่ละหลัก

  11. ตัวอย่างการแปลงเลขฐานแปดเป็นเลขฐานสิบตัวอย่างการแปลงเลขฐานแปดเป็นเลขฐานสิบ 3728 = (3 x 82 ) + (7 x 81 ) + (2 x 80 ) = (3 x 64 ) + (7 x 8 ) + (2 x 1) = 250 24.68 = (2 x 81) + (4 x 80 ) + (6 x 8 -1) = 20.75

  12. การแปลงเลขฐานสิบเป็นเลขฐานแปด ทำโดยนำแปดไปหาร เศษที่ได้จากการหารค่าแรกจะเป็นหลักต่ำสุด 266 / 8 = 33 + เศษ 2 33 / 8 = 4 + เศษ 1 4 / 8 = 0 + เศษ 4 ดังนั้น 26610 = 4128

  13. การแปลงเลขฐานแปดเป็นเลขฐานสองสามารถทำได้โดยเขียนเลขฐานสองที่แทนเลขแปดในแต่ละหลัก จากนั้นนำข้อมูลมาต่อกัน

  14. ถ้าหากต้องการแปลงเลข 4728 เป็นเลขฐานสองสามารถทำได้ดังนี้ 4 7 2 100 111 010 ดังนั้นเลข 4728 สามารถเขียนเป็นเลขฐานสองได้เป็น 100111010 ส่วนการแปลงเลขฐานสองเป็นเลขฐานแปดทำได้โดยให้จัดกลุ่มครั้งละ 3 บิต เริ่มจากบิตต่ำสุด แล้วเขียนเป็นเลขฐานแปดที่สอดคล้องกัน ถ้าหากไม่สามารถจัดกลุ่มให้เติมศูนย์ไปที่บิตสูงสุด ตัวอย่างเช่น ถ้าแปลง 11010110 เป็นเลขฐานแปดสามารถทำได้ดังนี้ เติม 0 011 010 110 3 2 6

  15. ระบบเลขฐานสิบหก ระบบเลขฐานสิบหกนี้จะใช้สัญลักษณ์แทน 16 ตัวคือ,1,2,3,4,5,6,7,8,9,A,B,C,D,Eและ F เลขฐานสิบหกหนึ่งหลักสามารถแทนเลขฐานสองได้ 4 หลัก

  16. การแปลงเลขฐานสิบหกเป็นเลขฐานสองการแปลงเลขฐานสิบหกเป็นเลขฐานสอง 9F2H = 9 F 2 = 1001 1111 0010 = 100111110010 ส่วนการแปลงเลขฐานสองเป็นเลขฐานแปดทำได้โดยให้จัดกลุ่มครั้งละ 4 บิต และแทนเลขฐานสองแต่ละกลุ่มด้วยเลขฐานสิบหก 11010101 = 1101 0101 = D 5 = D5H สามารถทำได้โดยแทนเลขฐานสิบหกแต่ละหลักด้วยเลขฐานสอง 4 บิต และนำมาเรียงต่อกัน

  17. การแปลงเลขฐานสิบหกเป็นเลขฐานสิบการแปลงเลขฐานสิบหกเป็นเลขฐานสิบ สามารถทำได้โดยน้ำหนักของเลขฐานสิบหกแต่ละหลักจะเป็น 160,161,162 …… ไปคูณกับค่าแต่ละหลัก แล้วนำมาบวกกัน

  18. ตัวอย่าง แปลงเลขฐานสิบหกเป็นเลขฐานสิบ วิธีทำ นำค่าน้ำหนักของแต่ละหลักมาคูณแล้วนำมาบวกกัน A0916 = 10 x 162 + 0 x 161 + 9 x 160 = 2560 + 9 = 2569

  19. การแปลงเลขฐานสิบเป็นเลขฐานสิบหกทำได้โดยการหารด้วย 16 ไปเรื่อยๆ ตัวอย่าง แปลงเลขฐานสิบเป็นเลขฐานสิบหก วิธีทำ 418 / 16 = 26 เศษ 2 26 / 16 = 1 เศษ 10 1 / 16 = 0 เศษ 1 41810 = 1 A 216

  20. ระบบเลข BCD ( Binary-Coded-Decimal System )

  21. ระบบเลข BCD • คอมพิวเตอร์รุ่นแรก ๆ เป็นคอมพิวเตอร์ที่ประมวลผลแบบ 4 บิต • ต่อมามีการพัฒนาเป็นคอมพิวเตอร์แบบ 8 บิต เพราะว่าเวิร์ดข้อมูลขนาด 8 บิต สามารถแทนเลข BCD ได้สองหลัก • ตัวเลข BCD บางครั้งเรียกว่า รหัส 8421 • เป็นระบบเลขที่ใช้เลขฐานสองจำนวนสี่บิตแทนเลขฐานสิบหนึ่งหลัก

  22. การแปลงระหว่างเลขฐานสิบกับเลข BCD • สามารถทำได้โดยการจัดกลุ่มของเลขฐานสองจำนวนสี่บิต เช่น 8 แทนเลขฐานสองจำนวนสี่บิต คือ 1000

  23. การเปรียบเทียบระหว่างเลขฐานสิบกับเลข BCD

  24. การแปลงเลขฐานสิบเป็นเลข BCD ตัวอย่าง จงแปลงเลข 49610 เป็นเลข BCD 4 9 6 0100 1001 0110 จะได้ 49610= 0100 1001 0110BCD ANS แทนค่าด้วยเลขฐานสอง

  25. การแปลงเลข BCD เป็นเลขฐานสิบ ตัวอย่าง จงแปลงเลข 0111 0101 1000BCDเป็นเลขฐานสิบ 0111 0101 1000 7 5 8 จะได้ว่า 0111 0101 1000BCD = 75810 ANS

  26. ตัวอย่างที่ไม่สามารถแปลงค่าได้ตัวอย่างที่ไม่สามารถแปลงค่าได้ ตัวอย่าง จงแปลงเลข 0110 0100 1011BCDเป็นเลขฐานสิบ 0110 0100 1011 6 4 * ไม่สามารถแปลงได้ เพราะเลขฐานสองสี่บิตที่เป็นเลข BCD ต้องมีค่าไม่เกิน 9

  27. การบวกเลข BCD • บวกเลข BCD สองจำนวนเหมือนกับการบวกเลขฐานสองที่ได้ศึกษามา • ถ้าหากผลบวกจำนวน 4 บิต มีค่าเท่ากับหรือน้อยกว่า 9 ตัวเลขนั้นคือเลข BCD • ถ้าหากผลบวกจำนวน 4 บิต มีค่ามากกว่า 9 หรือมีตัวทดจากบิตที่ 4 ให้นำค่า 6 คือ 0110 เข้าไปบวกด้วย ผลลัพธ์ที่ได้จะเป็นเลข BCD

  28. ตัวอย่างการบวกเลข BCD จงบวกเลข BCD 10000110 + 00010011 = ? 1000 0110 86 + 0001 0011+ 13 1001 1001 99 ANS

  29. การบวกเลข BCD ในกรณีที่มีค่ามากกว่า 9 จงบวกเลข BCD 1001 + 0100 = ? 1001 9 + 0100 + 4 1101 13 + 0110 ไม่ใช่เลข BCD เพราะมากกว่า 9 0001 0011 บวกด้วย 6 1 3 ANS

  30. การบวกเลข BCD ในกรณีมีตัวทดจากบิตที่ 4 จงบวกเลข BCD 1001 + 1001 = ? 1001 9 +1001+ 9 1 0010 มีตัวทดจากบิตที่ 4 18 + 0110บวกด้วย 6 0001 1000 1 8 ANS

  31. การบวกเลข BCD ในกรณีทั้งสองกลุ่มมากกว่า 9 จงบวกเลข BCD 01100111 + 01010011 = ? 0110 0111 67 + 0101 0011+ 53 1011 1010 ทั้งสองกลุ่มมากกว่า 9 120 + 0110 0110 0001 0010 0000 1 2 0 ANS

  32. รหัสคอมพิวเตอร์ คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่รู้จักระดับสัญญาณไฟฟ้าว่าเป็น ลอจิก “0” หรือลอจิก “1” เท่านั้น การที่จะให้คอมพิวเตอร์รู้จักตัวเลขหรือตัวอักขระต่างๆ จะต้องมีการเข้ารหัส ตัวอักขระเหล่านั้นให้เป็นข้อมูลที่คอมพิวเตอร์รู้จักเสียก่อน อย่างเช่นถ้าจะให้คอมพิวเตอร์เข้าใจว่าตัวอักขระตัวหนึ่งเป็นตัว “A” จะต้องให้ข้อมูล ที่มีค่าดิจิตอลเป็น 1000001 การทำแบบนี้เรียกว่า การเข้ารหัส รหัสคอมพิวเตอร์มีได้หลายรหัส ที่นิยมใช้กันคือรหัส ASCII ย่อมาจาก American Standard Code for Information Interchangeโดยใช้รหัสเลขฐานสอง จำนวน 7 บิต แทนตัวอักขระ 128 ตัว โดยรวมรหัสควบคุมต่าง ๆ ด้วย รหัสแอสกี่นี้ ในคอมพิวเตอร์จะใช้ในการรับข้อมูลจากแป้นพิมพ์ แสดงตัวอักษรทางจอภาพ และส่งข้อมูลออกทางเครื่องพิมพ์

  33. รหัส ASCII รหัสแอสกี่มีจำนวน 128 ตัว จะเห็นว่าจะใช้เลขฐานสองจำนวน 8 บิตแทน แต่บิตที่ 8 จะมีค่าเป็น “0” เพราะรหัสแอสกี่จะใช้ข้อมูลเพียง 7 บิต การใช้รหัสแอสกี่ในการสื่อสารข้อมูลระหว่างคอมพิวเตอร์ จะมีบิตพิเศษเพิ่มอีกหนึ่งบิต เรียกว่า บิตพาริตี้ ( Parity ) โดยบิตนี้จะเป็นบิตตรวจสอบความผิดพลาดของข้อมูล

  34. การสื่อสารข้อมูลด้วยรหัส ASCII แปลงข้อมูล ขนาน เป็น อนุกรม แปลงข้อมูล อนุกรม เป็น ขนาน สร้างบิต พาริตี้ ตรวจสอบ บิตพาริตี้

  35. รหัสเกรย์ ( GRAY CODE ) รหัสเกรย์เป็นรหัสคอมพิวเตอร์อีกชนิดหนึ่ง แต่เป็นรหัสที่ไม่มีค่าน้ำหนัก ไม่เหมาะสมสำหรับทำการคำนวณ แต่จะมีประโยชน์ในระบบที่ต้องใช้อุปกรณ์อินพุตเอาต์พุต และการเปลี่ยนแปลงระหว่างระบบเลขอนาลอกกับระบบเลขดิจิตอลบางประเภท การเปลี่ยนแปลงของรหัสเกรย์แต่ละค่า จะต่างจากจำนวนก่อนหน้าอยู่ 1 บิตเสมอ ทำให้เกิดความผิดพลาดในการส่งรหัสได้ยากเมื่อเทียบกับระบบเลขฐานสอง

  36. ตารางเปรียบเทียบรหัสเกรย์กับเลขฐานสิบและเลขฐานสองตารางเปรียบเทียบรหัสเกรย์กับเลขฐานสิบและเลขฐานสอง

  37. รหัสเกิน 3 ( Excess-3 Code )รหัสเกิน 3 เป็นรหัสที่ไม่มีน้ำหนัก รหัสนี้ประกอบด้วยกลุ่มเลขฐานสองจำนวน4 บิต โดยเกิดจากการนำเลข BCD มาบวกด้วย 3

  38. ระบบตัวเลขแบบคิดเครื่องหมายระบบตัวเลขแบบคิดเครื่องหมาย • บิตสูงสุด คือ บิตเครื่องหมาย • ถ้าบิตสูงสุดเป็น 0 แปลว่าเป็นบวก • ถ้าบิตสูงสุดเป็น 1 แปลว่าเป็นลบ

  39. จำนวนเลขที่มีเครื่องหมายเครื่องหมายขนาด ( Signed-Magnitude,SM ) • บิตแรกเป็นบิตเครื่องหมาย • ตัวเลขฐานสองที่ตามมาจะเป็นค่าขนาด ( Magnitude ) หรือ ค่าสัมบูรณ์ ( Absolute ) • ถ้าบิตเครื่องหมายเป็น 0 แทนตัวเลขบวก • ถ้าบิตเครื่องหมายเป็น 1 แทนตัวเลขลบ

  40. ระบบเลข One’ Complement • บิตแรกเป็นบิตเครื่องหมาย • ถ้าบิตเครื่องหมายเป็น 0 คือ เป็นเลขบวก ให้เขียนค่าตัวเลขตามหลัง • ถ้าบิตเครื่องหมายเป็น 1 คือ เป็นเลขลบให้เขียนค่าตามหลังเป็นค่าตรงข้าม

  41. ตัวอย่างการแปลงเลข SM และ One’ Complement จงแปลง -28 เป็นแบบ SM และ One’ Complement แบบ SM -28 = 111002 เติมบิตเครื่องหมายเป็น 1 ดังนั้น -28 = 1111002 แบบ One’ Complement 111002 กลับค่าเป็น 000112 ดังนั้น -28 = 1000112

  42. จงแปลง 85 เป็นแบบ SM และ One’ Complemeny แบบ SM 85 = 10101012 เติมบิตเครื่องหมายเป็น 0 ดังนั้น 85 = 010101012 แบบ One’ Complement 85 = 010101012 ดังนั้น 85 = 010101012

  43. จงแปลง -1.25 เป็นแบบ SM และ One’ Complement แบบ SM 1.25 แปลงเป็นเลขฐานสองได้ 1.012 ดังนั้น -1.25 = 11.012 แบบ One’ Complement 1.012กลับค่าเป็น 0.102 ดังนั้น -1.25 = 10.102

  44. ระบบเลข Two’ Complement • บิตแรกเป็นบิตเครื่องหมาย • ถ้าเป็นบวกไม่ต้องกลับค่าบิตขนาด • ถ้าเป็นลบกลับค่าบิตที่ตามมาทั้งหมดแล้วบวกด้วย 1

  45. ตัวอย่างการแปลงเลขแบบ Two’ Complement จงแปลง -28 เป็นแบบ Two’ Complement จากตัวอย่างที่แล้วของ One’ Complement 28 = 111002 กลับค่าของ 111002 ได้ 000112 นำมาบวกด้วย 1 00011 + 1 00100 ดังนั้น -28 = 1001002

  46. จงแปลง 85 เป็นแบบ Two’ Complement เนื่องจาก 85 = 10101012 ซึ่งมีค่าเป็นบวก ดังนั้นจึงไม่ต้องเปลี่ยน เพียงใส่บิตเครื่องหมายที่เป็นบวกคือ 0 ดังนั้น 85 = 010101012

  47. จงแปลง -1.25 เป็นแบบ Two’ Complement 1.25 = 1.012 เป็นลบ กลับค่า 1.012 ได้ 0.102 บวกด้วย 1 0.10 + 1 0.11 ดังนั้น -1.25 = 10.112

  48. คณิตศาสตร์ของเลข Two’ Complement ระบบเลข Two’ Complement สามารถใช้แทนเลขลบได้ ในการลบเลขคอมพิวเตอร์ จะใช้วิธีการบวกแทนวิธีการลบ แต่จะเป็นการบวกด้วยเลขลบแทน โดยเลขลบนั้นจะใช้เลขฐานสองแบบ Two’ Complement เช่น การลบค่า 14 ออกจาก 20 สามารถมองเป็น +14 + (-20) +14 = 0000 1110 (0EH) + -20= 0001 0100 กลับค่าเป็น 1110 1011 + 1 = +1110 1100 ( ECH) -6 1111 1010 = FAH จะเห็นว่าผลจากการบวกเป็น FAH โดยบิตสูงสุดเป็น 1 หมายความว่าเป็นเลขลบ ดังนั้นเราต้องแปลงค่า FAH นี้เป็นเลขฐานสิบ จะได้ 1111 1010 กลับค่าเป็น 0000 0101 + 1 = 0000 0110 = -6 แต่หากการบวกนี้เป็นการบวกแบบไม่คิดเครื่องหมายผลลัพธ์ FAH จะมีค่าเป็น 250

  49. การประกาศตัวแปรของคอมพิวเตอร์การประกาศตัวแปรของคอมพิวเตอร์ • ตัวแปรแบบ char เก็บข้อมูลได้ในช่วงใด ? • ตัวแปรแบบ integer เก็บข้อมูลได้ในช่วงใด ? • ตัวแปรแบบ unsigned integer เก็บข้อมูลได้ในช่วงใด ? • ตัวแปรแบบ long เก็บข้อมูลได้ในช่วงใด ?

  50. TO BE CONTINUE

More Related