1 / 49

บทที่ 3 ระบบเลข และการแทนรหัสข้อมูล

บทที่ 3 ระบบเลข และการแทนรหัสข้อมูล. ระบบเลขฐานต่างๆ (เน้น ฐาน 2 ฐาน 8 และ ฐาน 16) การแปลงเลขฐาน ความสัมพันธ์ของเลขฐาน 2 ฐาน 8 และฐาน 16 การคำนวณทางคณิตศาสตร์ในระบบเลขฐาน การแทนรหัสข้อมูลในระบบ BCD, EBCDIC, ASCII การแทนรหัสข้อมูลของจำนวนเลข จำนวนเต็ม จำนวนจริง. ระบบเลขฐาน (ฐาน 2,8,10,16).

Download Presentation

บทที่ 3 ระบบเลข และการแทนรหัสข้อมูล

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. บทที่ 3 ระบบเลข และการแทนรหัสข้อมูล • ระบบเลขฐานต่างๆ (เน้น ฐาน 2 ฐาน 8 และ ฐาน 16) • การแปลงเลขฐาน • ความสัมพันธ์ของเลขฐาน 2 ฐาน 8 และฐาน 16 • การคำนวณทางคณิตศาสตร์ในระบบเลขฐาน • การแทนรหัสข้อมูลในระบบ BCD, EBCDIC, ASCII • การแทนรหัสข้อมูลของจำนวนเลข จำนวนเต็ม จำนวนจริง

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

  3. ตัวเลขในฐานต่างๆ • ฐาน 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

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

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

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

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

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

  9. ตัวอย่างการแปลงเลขฐาน 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 Ans: 1101.01102

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

  11. ตัวอย่างการแปลงเลขฐาน 2 เป็นฐาน 8 • จำนวนเต็ม 111112 = ( 37 ) 8 0 1 1 1 1 1 (0*4)+(1*2)+(1*1) (1*4)+(1*2)+(1*1) 3 7

  12. ตัวอย่างการแปลงเลขฐาน 2 เป็นฐาน 16 • เลขจำนวนจริง 0001.112 = (1.C ) 16 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) 12 C 1

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

  14. ตัวอย่างการแปลงเลขฐาน 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 Ans: 1010000116 Ans: 1110112

  15. ตัวอย่างการแปลงเลขฐาน 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 Ans: 10100001.101116 Ans: 111 . 0112

  16. การคำนวณเลขฐาน • การบวกเลขฐาน • การลบเลขฐาน • การลบเลขฐาน แบบ Complement

  17. การบวกเลขฐาน • การบวก F31C16 + 235016 1266C16 1101.112 + 0111.012 10101.00 2 5345 + 1235 คำนวณไม่ได้ เพราะไม่มีเลข 5 ในฐาน 5

  18. การลบเลขฐาน • การลบเลข 1011.0112 - 0111.1012 0011.1102 4325 - 1435 2345

  19. การหาคอมพลีเมนท์ (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

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

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

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

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

  24. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ตัวอย่างการลบเลขแบบคอมพลีเมนท์ • 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

  25. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ตัวอย่างการลบเลขแบบคอมพลีเมนท์ • คอมพลีเมนท์ ที่ 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 ตัดทิ้ง

  26. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ ***กรณีที่ตัวตั้งมีคานอยกวาตัวลบ • ผลลัพธที่ไดเปนคาติดลบมีวิธีลบ มีขั้นตอนดังนี้ • นําตัวตั้งบวกดวยคอมพลีเมนตของตัวลบ • หากผลบวกมีจํานวนหลักเทาเดิมแสดงวาผลการบวกจะยังไมเปนผลลัพธของการลบที่ตองการ • นําผลบวกที่ไดไปหาคาคอมพลีเมนต แลวเติมเครื่องหมายลบจะไดเปนผลลัพธของการลบ

  27. 1111-1100= 0011 1 2 ข้อแตกต่างจาก R comp. 1011+ 0011 1110 - 1111-1110 = 0001 3 ตัวอย่างการลบเลขแบบคอมพลีเมนท์ ***กรณีที่ตัวตั้งมีคานอยกวาตัวลบ ตัวอย่าง 10112-11002= ? ลองลบด้วยวิธี R-1 complement

  28. ตัวอย่างการลบเลขแบบคอมพลีเมนท์ ***กรณีที่ตัวตั้งมีคานอยกวาตัวลบ • ผลลัพธที่ไดเปนคาติดลบมีวิธีลบ มีขั้นตอนดังนี้ • นําตัวตั้งบวกดวยคอมพลีเมนตของตัวลบ • หากผลบวกมีจํานวนหลักเทาเดิมแสดงวาผลการบวกจะยังไมเปนผลลัพธของการลบที่ตองการ • นําผลบวกที่ไดไปหาคาคอมพลีเมนต แลวเติมเครื่องหมายลบจะไดเปนผลลัพธของการลบ

  29. 10000-1100= 0100 1 ดูจาก 2 1011+ 0100 1111 - 10000-1111 = 0001 3 ตัวอย่างการลบเลขแบบคอมพลีเมนท์ ***กรณีที่ตัวตั้งมีคานอยกวาตัวลบ ตัวอย่าง 10112-11002= ? คำถาม : ใช้วิธีลบแบบใดอยู่ R-1 หรือ R complement?

  30. การแทนรหัสข้อมูลในหน่วยความจำData Representation • การแทนรหัสข้อมูลที่เป็นอักขระ (Alphanumeric Data Representation) • การแทนรหัสข้อมูลที่เป็นจำนวนเลข (Numeric Data Representation) • เลขจำนวนเต็ม (Integer Representation) • เลขที่มีจุดทศนิยม (Floating Point Representation)

  31. การแทนข้อมูลที่เป็นอักขระการแทนข้อมูลที่เป็นอักขระ • รหัส BCD : Binary Coded Decimal Code • รหัส EBCDIC: Extended Binary Coded Decimal Interchange Code • รหัส ASCII : American Standard Code for Information Interchange

  32. รหัส BCD • ใช้ 6 บิทแทนอักขระ 1 ตัว • ระบบนี้แทนอักขระได้ 64 ตัว ( 26 รูปแบบ) C B A 8 4 2 1 Digit bit Zone bit Check bit/ Parity bit

  33. รหัส BCD • การแทนรหัส BCD • อักขระแบบตัวเลข (0 - 9) Zone Bit จะเป็น 00 • อักขระแบบตัวอักษร หรือ สัญลักษณ์พิเศษ Zone bit เป็น 11

  34. รหัส EBCDIC • ใช้ 8 บิทแทนอักขระ 1 ตัว • ระบบนี้แทนอักขระได้ 256 ตัว ( 28 รูปแบบ) C B A 8 4 2 1 Digit bit Zone bit Check bit/ Parity bit

  35. รหัส EBCDIC • การบันทึกข้อมูลในระบบ EBCDIC มี 2 แบบ • การบันทึกแบบ Zone Decimal • การบันทึกแบบ Packed Decimal • การบันทึกแบบตัวเลข Zone bit มีค่าเป็น • 1111 สำหรับเลขที่ไม่มีเครื่องหมายนำหน้า ( 15 ,F) 1100 สำหรับเลขที่มีเครื่องหมายบวก และ (+,12 ,C) 1101 สำหรับเลขที่มีเครื่องหมายลบ (-,13 ,D)

  36. การแทนข้อมูลแบบ Packed Decimal • เป็นการเปลี่ยนลักษณะการเก็บรหัส EBCDIC ให้ใช้ในการคำนวณ • การเปลี่ยนนี้จำนวนหลักสามารถยืดหยุ่นได้ • ไม่ใช้กับตัวเลขที่เป็นจุดทศนิยม

  37. วิธีการ PACK • “-123” • สลับส่วน Zone bit และ Digit bit ของไบท์ขวาสุด • ตัด Zone bit ของไบท์ ที่เหลือ • บีบข้อมูลซึ่งเป็น Digit Bit เข้ามา • มักทำอยู่ในเลขฐาน 16 (123D)16 • วิธี Unpack ทำตรงกันข้าง กับการ Pack 1101 0001 1101 0010 1101 0011

  38. รหัส ASCII • มี 2 ชนิด คือ 7 บิท กับ 8 บิท กำหนดให้ตัวเลขมีค่าน้อยกว่าตัวอักษรเป็นรหัสที่นิยมในปัจจุบัน • ลักษณะคล้าย EBCDIC มี Zone bit เป็น • สำหรับตัวเลข 0101 และ 011 • สำหรับตัวอักษร 1010 และ 100

  39. เป็นบิทที่ใช้ตรวจสอบการแทนรหัส มี 2 ระบบ Even Parity ระบบจำนวนคู่ ระบบนี้ต้องมีบิทที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคู่ Odd Parity ระบบจำนวนคี่ ระบบนี้ต้องมีบิทที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคี่ Parity bit หรือ Check bit 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1

  40. การแทนรหัสข้อมูลที่เป็นตัวเลขการแทนรหัสข้อมูลที่เป็นตัวเลข • การแทนข้อมูลแบบนี้ กำหนดเนื้อที่ในหน่วยความจำมีขนาดตายตัว (Fixed length word) สำหรับแทนตัวเลข 1 จำนวน • half-word ใช้เนื้อที่ 2 ไบท์ • Full-word ใช้เนื้อที่ 4 ไบท์ • Double-word ใช้เนื้อที่ 8 ไบท์

  41. การแทนเลขจำนวนเต็ม • Sign Magnitude / Pure binary code • 2’ Complement • 1’ Complement

  42. Sign Magnitude • ระบบนี้บิทซ้ายสุดแทนเครื่องหมายเรียกว่า Sign bit ที่เหลือแทนขนาดของจำนวนเลข เรียกว่า Magnitude MSB LSB Sign bit Magnitude 1 แทน ลบ 0 แทน บวก 1 Word = 4 Byte = 32 Bit

  43. แสดงการแทนค่า • แบบ Sign Magnitude 1 Word = 4 Byte = 32 bit 31 32 2 1 0 ......................... 0 1 1 0 0 1 25=110012 0 0 0 -25 1 0 0 ......................... 0 1 1 0 0 1

  44. แสดงการแทนค่า • แบบ 2’ Complement • เป็นระบบที่นิยมใช้ • การแสดงจำนวนเลขในระบบนี้ • เลขบวก แทนเหมือนระบบ Sign Magnitude • เลขลบ แทนด้วยค่า 2’ Complement ของเลขจำนวนนั้น

  45. ตัวอย่าง การแทนค่า 2’ Complement • เช่น 28 = 111002 MSB LSB 0 000000.............0000000000 1 1 1 0 0 1 111111.............1111111111 0 0 0 1 1 + 1 1 111111.............1111111111 0 0 1 0 0

  46. Floating Point Representation • R = + - M * B+- E 31 30 24 0 Sign Exponent Mantissa SSign แทนเครื่องหมาย บวก ลบ ของจำนวนเลข E Exponent ส่วนที่ยกกำลัง M Mantissa เลขที่อยู่หลังจุด

  47. ขั้นตอนการทำ Floating point • เปลี่ยนเลขไปเป็นฐาน 16 • Normalization เลขฐาน 16 (มีเลขหลังจุด และ ยกกำลัง) • เปลี่ยน Sign, Exponent, Mantissa เป็นเลขฐาน 2 • Sign : 1 แทนค่าลบ 0 แทนค่าบวก • Mantissa : เปลี่ยนเป็นฐาน 2 เติมเลขจากขวา มา ซ้ายที่เหลือเติมศูนย์

  48. ขั้นตอนการทำ Floating point • Exponent เป็นได้ทั้งค่าบวก หรือ ลบ จึงต้องใช้วิธี Excess 64 • exponent 16 = 4016 + true exponent16 • exponent16 ----> exponent 2

  49. ตัวอย่าง ทำ Floating point • 28 ----> 1C16 • 1C16 = (+.1C * 102)16 • Sign ----> 0 • Mantissa ----> 0001 11002 • Exponent ----> 4016 + 216 = 42 16 -----> 100 00102 0 100 0010 0001 11000000..........................

More Related