1 / 45

หลักมูลการแทนข้อมูล

หลักมูลการแทนข้อมูล. Data Representation. หัวข้อเรื่อง. ระบบเลขฐาน (Base Numbers) ฐานสอง,ฐานแปด,ฐานสิบ,ฐานสิบหก,การแปลงค่า การแทนข้อมูลตัวอักขระ (Character Representation) BCD, EBCDIC, ASCII, Uni-code

Download Presentation

หลักมูลการแทนข้อมูล

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. หลักมูลการแทนข้อมูล Data Representation

  2. หัวข้อเรื่อง • ระบบเลขฐาน (Base Numbers) • ฐานสอง,ฐานแปด,ฐานสิบ,ฐานสิบหก,การแปลงค่า • การแทนข้อมูลตัวอักขระ (Character Representation) • BCD, EBCDIC, ASCII, Uni-code • การแทนข้อมูลตัวเลข (Number Representation) • Fixed-point, Floating-point

  3. วัตถุประสงค์การเรียนรู้วัตถุประสงค์การเรียนรู้ อธิบาย • แทนค่าและเปรียบเทียบค่าในการเข้ารหัสของเลขฐานสอง ฐานสิบและฐานสิบหกได้ • หลักการแทนข้อมูลตัวอักขระไม่น้อยกว่า 3 แบบ • หลักการแทนค่าข้อมูลตัวเลขทั้งแบบจุดตรึงและแบบจุดลอยตัวได้ • เปรียบเทียบค่าตัวเลขที่แทนค่าในแบบจุดตรึงและแบบจุดลอยตัวได้

  4. เอกสารอ้างอิง • Hamacher, V. Carl and others Computer Organization 5ed. New York : McGraw-Hill, 2002. P.25-36, 790-794. • Hayes, John P. Computer Architecture and Organization 3rd ed. Malaysia:McGraw-Hill, 1998. P.160 - 178, P.223 - 302.

  5. เอกสารอ้างอิง • Stallings, William Computer Organization and Architecture : designing for performance 5th ed. NewJersey : Prentice-Hall, 2000. P.269 - 312.

  6. เอกสารอ้างอิง • Schneider, G. Michael and others Computer Organization and Assembly Language Programming for the VAX John Wiley&Sons, 1987. P.15 - 86.

  7. ระบบเลขฐาน Base Number Systems

  8. ระบบเลขฐาน • เลขฐานสอง (Binary Numbers) • เลขฐานแปด (Octal Numbers) • เลขฐานสิบ (Decimal Numbers) • เลขฐานสิบหก (Hexadecimal Numbers) • การคำนวณของเลขฐาน • การแปลงเลขฐาน

  9. ระบบตัวเลขเลขฐานสัญลักษณ์ที่ใช้ระบบตัวเลขเลขฐานสัญลักษณ์ที่ใช้ Binary2 01 Ternary 3 012 Quaternary4 0123 Quandary 5 01234 Senary 6 012345 Septenary 7 0123456 Octenary (Octal) 8 01234567 Nonary 9 012345678 Denary (Decimal) 10 0123456789 Undenary 11 0123456789A Duodenary 12 0123456789AB Tredenary 13 0123456789ABC Quatuordenary 14 0123456789ABCD Quidenary 15 0123456789ABCDE Hexadenary (Hexadecimal) 16 0123456789ABCDEF

  10. ตัวเลขในฐานต่างๆ • ฐาน 2 มีเลข 0,1 • ฐาน 8 มีเลข 0,1,2,3,4,5,6,7 • ฐาน 10 มีเลข 0,1,2,3,4,5,6,7,8,9 • ฐาน 16 มีเลข 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

  11. ระบบเลขฐาน (ฐาน 2,8,10,16) • Place Value: ระบบเลขที่แต่ละหลักมีค่าประจำหลัก • ค่าประจำหลัก คือ ค่าของเลขฐานนั้นๆ ยกกำลังตามตำแหน่งหลักเริ่ม จาก ศูนย์ • Least significant digit : คือเลขที่มีค่าประจำหลักน้อย • Most significant digit : คือเลขที่มีค่าประจำหลักสูง • การเขียนเลขฐานต้องมีค่าฐานกำกับ (ยกเว้นฐาน 10) 58,750,350 Most Significant Digit Least Significant Digit

  12. เลขฐานสิบ มีค่า = (5x104)+(4x103)+(3x102)+(2x101)+(1x100)+ (6x10-1)+(7x10-2)+(8x10-3)=54,321.678

  13. เลขฐานสอง มีค่า = (1x24)+(1x23)+(0x22)+(1x21)+(0x20)+ (0x2-1)+(1x2-2)+(1x2-3)=11010.0112 26.87510

  14. เปรียบเทียบฐานสอง-สิบเปรียบเทียบฐานสอง-สิบ เลขฐานสิบ7 6 5 4 3 2 1 0 ค่าเลขฐานสอง 5 0000 0101 1012 7 0000 0111 1112 10 0000 1010 10102 13 0000 1101 11012 20 0001 0100 101002 32 0010 0000 1000002 45 0010 1101 1011012 54 0011 0110 1101102

  15. เลขฐานแปด มีค่า = (2x84)+(7x83)+(6x82)+(5x81)+(3x80) =276538 12,20310

  16. เปรียบเทียบฐานสอง-แปด-สิบเปรียบเทียบฐานสอง-แปด-สิบ เลขฐานสองเลขฐานแปดเลขฐานสิบ 000 100 000 408 3210 000 101 101 558 4510 000 110 110 668 5410 010 010 101 2258 14910 011 010 111 3278 21510 100 101 110 4568 30210 101 111 110 5768 38210

  17. เลขฐานสิบหก มีค่า = (8x164)+(7x163)+(Cx162)+(5x161)+(Ax160) =87C5A16 556,12210

  18. เปรียบเทียบฐานสอง-แปด-สิบ-สิบหกเปรียบเทียบฐานสอง-แปด-สิบ-สิบหก เลขฐานสองเลขฐานแปดเลขฐานสิบเลขฐานสิบหก 000 100 000 408 3210 2016 000 101 101 558 4510 2D16 000 110 110 668 5410 3616 010 010 101 2258 14910 9516 011 010 111 3278 21510 D716 100 101 110 4568 30210 12E16 101 111 110 5768 38210 17E16

  19. เปรียบเทียบฐานสอง-แปด-สิบหกเปรียบเทียบฐานสอง-แปด-สิบหก เลขฐานสองเลขฐานแปดเลขฐานสองเลขฐานสิบหก 000 100 0004080010 0000 2016 000 101 101558 0010 11012D16 000 110 1106680011 01103616 010 010 10122581001 0101 9516 011 010 11132781101 0111 D716 100 101 11045680001 0010 1110 12E16 101 111 11057680001 0111 111017E16

  20. การคำนวณของเลขฐาน • การบวก (Addition) • การลบ (Subtraction) • การคูณ (Multiplication) • การหาร (Division)

  21. การบวก 1100 1110 1 1010 • ใช้หลักการเดียวกับการบวกเลขฐานสิบ • เขียนตัวเลขชิดขวา • ให้ตัวเลขแต่ละหลักตรงกัน • บวกทีละหลัก อาจมีตัวทดไปหลักข้างหน้าได้ ฐานสอง ฐานแปด ฐานสิบหก 0014 0016 0032 000C 000E 001A + + +

  22. การลบ 1011 0101 0110 • ใช้หลักการเดียวกับการลบเลขฐานสิบ • เขียนตัวเลขชิดขวา • ให้ตัวเลขแต่ละหลักตรงกัน • ลบทีละหลัก หากตัวลบมากกว่าตัวตั้งต้องยืมค่ามาจากหลักข้างหน้า ฐานสอง ฐานแปด ฐานสิบหก 0126 0054 0052 0A3E 067C 03C2 - - -

  23. การคูณ 1011 101 1011 0000 . 1011 . 110111 • ใช้หลักการเดียวกับการคูณเลขฐานสิบ • เขียนตัวเลขชิดขวา ให้ตัวเลขแต่ละหลักตรงกัน • คูณทีละหลักของตัวคูณกับตัวตั้ง แล้วจึงหาค่าผลลัพธ์ที่เขียนเยื้องกันดังกล่าว ฐานสอง ฐานแปด ฐานสิบหก 1026 541 1026 4130 . 5156 . 560126 1035 21A A212 1035 . 206A . 220F62 x x x

  24. การหาร • ใช้หลักการเดียวกับการหารเลขฐานสิบ • เขียนตัวเลขตั้งหารในเครื่องหมาย ) • ตัวตั้งหารด้วยตัวหาร เขียนผลลัพธ์ไว้ด้านบน นำตัวตั้งไปลบออกจากตัวหารเพื่อหาเศษ ดึงตัวเลขหลักถัดไปทางขวาลงมาเพื่อหารต่อไป 011 101011 ) 10000010 101011 1011000 101011 000001 ฐานสอง

  25. การหาค่าส่วนเติมเต็ม(Complement)การหาค่าส่วนเติมเต็ม(Complement) C = Bn - T เมื่อ C = ค่าตัวเลขส่วนเติมเต็มของ T B = ค่าของฐาน (Base) n = จำนวนหลักของตัวเลขส่วนเติมเต็ม T ตัวอย่าง ให้ B = 10 (เลขฐานสิบ); T = 7593; n = 4 หลัก จะได้ว่า C = 104 - 7593 = 10000 - 7593 = 2407 ดังนั้น 2407 จึงเป็นส่วนเติมเต็มของ 7593

  26. การหาค่าส่วนเติมเต็ม(Complement)การหาค่าส่วนเติมเต็ม(Complement) ส่วนเติมเต็ม สามารถใช้บวกกับตัวตั้งแทนการลบได้ ฐานสิบ ฐานสิบ หาค่าส่วนเติมเต็ม 8964 2407 1 1371 8964 7593 1371 10000 - 7593 = 2407 + - เกินจำนวนหลัก จึงตัดทิ้งไป ฐานสอง ฐานสอง หาค่าส่วนเติมเต็ม 0011 0011 1110 0011 1 0001 0110 0011 0011 0001 1101 0001 0110 1 0000 0000 0001 1101 1110 0011 - + -

  27. การหาคอมพลีเมนท์ (Complement) • Complement ของฐานใดๆ (ให้ R แทนฐาน) มี 2 ประเภท คือ Complement R และ Complement R-1 ฐาน R-1’ Comp. R’ Comp 2 1’ Comp 2’ Comp. 8 7’ Comp 8’ Comp 10 9’ Comp 10’ Comp

  28. การหาค่าคอมพลีเมนท์ • การหาคอมพลีเมนท์ ที่ R-1 ของเลขใดๆ • นำค่าสูงสุดของเลขนั้นๆลบด้วยเลขนั้น • ผลที่ได้คือ คอมพลีเมนท์ของเลขจำนวนนั้น • เลข 2910 มีค่าสูงสุด คือ 99 • 9’ Comp : 99 -29 = 70 • เลข 101.112 มีค่าสูงสุดคือ 111.11 • 1 ‘Comp : 111.11 - 101.11 = 010.00

  29. การหาค่าคอมพลีเมนท์ • การหาคอมพลีเมนท์ ที่ R ของเลขใดๆ • นำค่าสูงสุดของเลขนั้นบวกด้วยเลขที่ทำให้เกิดการ เปลี่ยนหลัก ของค่าสูงสุด แล้วจึงลบด้วย เลขจำนวนนั้นอีกที่หนึ่ง • เลข 2910 มี คอมพลีเมนท์ เป็น • 10 ‘ Comp : (99 + 1) - 29 = 71 • เลข 101.112 มีคอมพลีเมนทเป็น • 2 ‘Comp: (111.11 + .01)- 101.11 = 0010.01

  30. ข้อสังเกตุเกี่ยวกับคอมพลีเมนท์ข้อสังเกตุเกี่ยวกับคอมพลีเมนท์ • การหา R-1 Complement คือ การนำเลขจำนวนนั้นลบออกจากเลขสูงสุด • 1’ Complement ในเลขฐาน 2 คือ การเปลี่ยนค่าของแต่ละบิทให้ตรงกันข้าม • ค่า R-1 Complement มีค่าน้อยกว่า R Complement อยู่ 1 เสมอ ณ หลักขวามือสุด • 2’Comp = 1’ Comp + 1 ที่หลักขวามือสุด

  31. การลบเลขแบบคอมพลีเมนท์การลบเลขแบบคอมพลีเมนท์ • นำเลขตัวลบไปหาคอมพลีเมนท์ • นำคอมพลีเมนท์ที่หาได้ บวก กับเลขตัวตั้ง • ผลลัพธ์ที่ได้ถ้ามีเลขเกินหลัก • กรณี R’ Comp. ให้ตัดทิ้ง • กรณี R-1’ Comp. ให้นำเลขที่เกินหลัก บวกกับผลลัพธ์ • ผลที่ได้คือคำตอบ

  32. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ตัวอย่างการลบเลขแบบคอมพลีเมนท์ • R-1’ Comp. 1011.011 2- 111.1012 = ? 1) 111.111 - 111.101= 000.010 2) 1011.011 + 1000.010 1 0011.101 + 1 0011.110 4325 - 1435 = ? 1) 444 - 143 = 301 2) 432 + 301 1 233 + 1 234 1 0 1

  33. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ตัวอย่างการลบเลขแบบคอมพลีเมนท์ • คอมพลีเมนท์ ที่ R 1011.011 2- 111.1012 = ? 1) 10000.000 - 0111.101=1000.011 2) 1011.011 + 1000.011 1 0011.110 4325 - 1435 = ? 1) 1000 - 143 = 302 2) 432 + 302 1 234 ตัดทิ้ง

  34. การแปลงเลขฐาน • การแปลงเลขฐานใดๆเป็นฐาน 10 • การแปลงเลขฐาน 10เป็นฐานใดๆ • การแปลงเลขฐาน 2 เป็น ฐาน 8 / ฐาน16 • การแปลงเลขฐาน 8/ ฐาน 16เป็นฐาน 2

  35. อาศัยค่าประจำหลัก คูณตัวเลขแต่ละหลัก แล้วนำผลคูณที่ได้มารวมกัน ต.ย. 11012 = ( ? )10 ค่าประจำหลัก คือ 23 22 21 20 (1*8)+(1*4)+(0*2)+ (1*1) = 13 การแปลงเลขฐานใดๆเป็นฐาน 10 23 22 21 20 1 1 0 12 (1 x 23) (1 x 22) (0 x 21) (1 x 20)

  36. การแปลงเลขฐาน 10 เป็นฐานใดๆ • กรณี เลขจำนวนเต็ม • ใช้หลัก MODULO คือ • เลขฐาน 10 เป็นตัวตั้ง หารด้วยเลขฐานที่กำลังจะแปลง • ให้เก็บเศษจากการหาร • หารเลขต่อไปจนกระทั่งไม่สามารถหารได้ • นำเศษของการหารมาวางต่อกัน เศษตัวสุดท้ายเป็น Most significant

  37. ตัวอย่างการแปลงเลขฐาน 10 เป็นฐานใดๆ • เลขจำนวนเต็ม 1310 = (? )2 1310= ( ? ) 4 4 13 3 1 2 13 2 6 1 2 3 0 1 1 ตอบ 314 ตอบ11012

  38. การแปลงเลขฐาน 10 เป็นฐานใดๆ • กรณี เลขจำนวนจริง: การแปลงแบ่งเป็น 2 ส่วน • ส่วนหน้าจุดทศนิยมใช้วิธี MODULO • ส่วนเลขหลังจุดทศนิยม • คูณเลขหลังจุดด้วยฐานที่จะแปลงไป บันทึกเฉพาะเลขหน้าจุด • ส่วนเลขหลังจุดนำมาคูณต่อ จนครบจำนวนตำแหน่งหลังจุดที่ต้องการ

  39. ตัวอย่างการแปลงเลขฐาน 10 เป็นฐานใดๆ • เลขจำนวนจริง 13.4 10 = ( )2 .4 * 2 = 0 .8 .8 * 2 = 1 .6 .6 * 2 = 1 .2 .2 * 2 = 0 .4 2 13 2 6 1 2 3 0 1 1 ตอบ 1101.01102

  40. การแปลงเลขฐาน 2 เป็น ฐาน 8 ฐาน 16 • หลักการใช้การจัดกลุ่มบิท • เลขฐาน 2 เป็น ฐาน 8 จัดกลุ่มละ 3 บิท • เลขฐาน 2 เป็น ฐาน 16 จัดกลุ่มละ 4 บิท • โดยเริ่มจากบิทที่อยู่ใกล้จุดทศนิยม หากกลุ่มสุดท้ายมีไม่ครบ ให้เติม 0 ลงไป

  41. ตัวอย่างการแปลงเลขฐาน 2 เป็นฐาน 8 • จำนวนเต็ม 111112 = ( 37 ) 8แบ่งออกทีละ 3 บิทจากขวา->ซ้าย 0 1 1 1 1 1 (0*4)+(1*2)+(1*1) (1*4)+(1*2)+(1*1) 3 7

  42. ตัวอย่างการแปลงเลขฐาน 2 เป็นฐาน 16 เลขจำนวนจริง 0001.112 = (1.C)16 แบ่งกลุ่มทีละ 4 บิท 1 1 0 0 0 0 0 0 0 1 (0*8)+(0*4)+(0*2)+(1*1) (1*8)+(1*4)+(0*2)+(0*1) 1 12 C16

  43. การแปลงเลขฐาน 8 ฐาน 16 เป็น ฐาน 2 • ใช้หลักการกระจายเลขแต่ละหลักออกเป็น บิท • เลขฐาน 8 หนึ่งหลัก กระจายเป็นเลขฐาน 2 ได้ 3 บิท • เลขฐาน 16 หนึ่งหลัก กระจายเป็นเลขฐาน 2 ได้ 4 บิท

  44. ตัวอย่างการแปลงเลขฐาน 8 ฐาน 16 เป็น ฐาน 2 • กรณี เลขจำนวนเต็ม 738 =( ) 2 A316 = ( ) 2 7 3 10 3 0 0 1 1 1 1 1 0 1 1 1 0 1 0 ตอบ 1110112 ตอบ 1010000116

  45. ตัวอย่างการแปลงเลขฐาน 8 ฐาน 16 เป็น ฐาน 2 • กรณี เลขจำนวนจริง 7.38 =( ) 2 A3.B16 = ( ) 2 7 . 3 10 3 . 11 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 ตอบ 10100001.10112 ตอบ 111 . 0112

More Related