1 / 52

บทที่ 2 รหัส ( Codes)

บทที่ 2 รหัส ( Codes). 2.1 กล่าวนำ การเข้ารหัสของข่าวสาร คือ การสร้างตัวเลขหรือตัวอักษร โดยการใช้สัญลักษณ์ใด ๆ เพื่อความปลอดภัยของข่าวสารในการป้องกัน มิให้ผู้อื่นได้รับทราบข่าวสารนั้น ๆ. สำหรับในเรื่องของคอมพิวเตอร์ คือ การเปลี่ยนตัวอักษรหรือตัวเลขฐานสิบให้เป็นกลุ่มของเลขฐานสอง

aimee-wells
Download Presentation

บทที่ 2 รหัส ( Codes)

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 รหัส (Codes)

  2. 2.1 กล่าวนำ การเข้ารหัสของข่าวสาร คือ การสร้างตัวเลขหรือตัวอักษร โดยการใช้สัญลักษณ์ใด ๆ เพื่อความปลอดภัยของข่าวสารในการป้องกัน มิให้ผู้อื่นได้รับทราบข่าวสารนั้น ๆ

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

  4. 2.2 รหัส BCD-8421 รหัสเบื้องต้นที่จะกล่าวถึงนี้เรียกว่า รหัส BCD-8421 (BCD ย่อมาจาก Binary-Coded Decimal) เป็นรหัสที่เขียนอยู่ในรูปของเลขฐานสอง มีจำนวน 10 รหัส เท่ากับเลขฐานสิบ ดังแสดงในตารางที่ 2.1

  5. ตารางที่ 2.1 แสดงการเปรียบเทียบระหว่างเลขฐานสิบกับรหัส BCD-8421

  6. จะเห็นว่าเลขฐานสิบ 1 หลัก เขียนแทนด้วย เลขฐานสอง 4 Bits โดยที่แต่ละ Bit ของรหัส BCD-8421 ได้กำหนดน้ำหนักไว้คือ Bit แรกทางขวามีน้ำหนักเป็น 1 ถัดมามีน้ำหนักเป็น 2, 4 และ 8 รหัส BCD แบบนี้จึงเรียกว่าBCD แบบ 8421

  7. หรือ BCD-8421 ซึ่งเป็นรหัสที่สะดวกต่อการนำไปใช้งาน เพราะถ้าเลขฐานสิบมีหลายหลัก ก็สามารถเขียนรหัส BCD-8421 แทนเลขฐานสิบ หลักละ 4 Bitsเช่น

  8. ตารางที่ 2.2 การแทนเลขฐานสิบหลาย ๆ กลัก ด้วยรหัส BCD-8421

  9. ถึงแม้ว่า รหัส BCD-8421 จะเขียนอยู่ในรูปของเลขฐานสอง แต่ก็ไม่เหมือนกับเลขฐานสอง เช่น (12)10 เขียนเป็นเลขฐานสองได้เท่ากับ (1100)2 แต่เขียนอยู่ในรูปของรหัส BCD-8421 ได้เป็น 0001 0010 เป็นต้น ตารางที่ 2.3 แสดงการเปรียบระหว่าง เลขฐานสิบ เลขฐานสอง และรหัส BCD-8421

  10. ตารางที่ 2.3 แสดงการเปรียบระหว่างเลขฐานสิบ เลขฐานสอง และรหัส BCD-8421

  11. ตัวอย่างที่ 2.1 จงเขียนเลขฐานสิบต่อไปนี้ให้อยู่ในรูปของรหัส BCD-8421 (ก) (93)10 (ข) (104)10 (ค) (357)10 (ง) (624)10 (จ) (1850)10 (ฉ) (7986)10

  12. ตัวอย่างที่ 2.2 จงเขียนเลขฐานสิบต่อไปนี้ให้อยู่ในรูปของเลขฐานสอง และรหัส BCD-8421 (ก) (76)10 (ข) (452)10 (ค) (897)10 (ง) (3120)10

  13. ตัวอย่างที่ 2.3 จงเขียนเลขฐานต่าง ๆ ต่อไปนี้ให้อยู่ในรูปของ รหัส BCD-8421 (ก) (1101101)2 (ข) (736)8 (ค) (6B2)16

  14. 2.3รหัส Octal และรหัส Hexadecimal รหัส Octal คือ เลขฐานแปดนั่นเอง ซึ่งมีอยู่ 8 ตัว คือ 0 ถึง 7 ส่วนรหัส Hexadecimal คือ เลขฐานสิบหก ซึ่งมีอยู่ 16 ตัว คือ 0 ถึง F

  15. รหัส BCD-8421 นั้น ไม่สามารถบวกกันได้ เพราะถ้าบวกกันแล้วได้ผลลัพธ์ตั้งแต่ 10 ขึ้นไป ก็จะไม่มีรหัสที่ใช้แทนได้ เช่น 7 + 5 = 12 เมื่อเขียนอยู่ในรูปของ รหัส BCD-8421 จะได้ 0111 + 0101 = 1100 ซึ่ง 1100 ไม่มีใน รหัส BCD-8421

  16. หรือในกรณีของเลขหลาย ๆ Bit เช่น เลข 8 Bits ที่เครื่องคอมพิวเตอร์ใช้ หากจะต้องมาเปลี่ยนเป็นรหัส BCD-8421 ทุกครั้ง ระหว่างอุปกรณ์ภายนอกกับเครื่องคอมพิวเตอร์ ก็จะทำให้เกิดความยุ่งยาก และไม่เหมาะสมเท่ากับเลขฐานสอง และเลขฐานสองก็ลำบากในการคิด

  17. ดังนั้น จึงมีวิธีการแบ่งเลขฐานสอง ออกเป็นกลุ่ม ๆ ละ 3 Bits แล้วแทนด้วยเลข Octal คือ 0 ถึง 7 เรียกว่า รหัส Octal หรือแบ่งเป็นกลุ่มละ 4 Bits แล้วแทนด้วยเลข Hexadecimal คือ 0 ถึง F เรียกว่า รหัส Hexadecimal

  18. การเข้ารหัส Octal ให้อยู่ในรูปของเลขฐานสอง ทำได้โดยการแบ่งเป็นกลุ่มๆละ 3Bitตามเลขฐานแปด ขอให้พิจารณาเลขฐานสองจำนวน 24 Bits ที่เก็บไว้ในเครื่องคอมพิวเตอร์ เช่น (1010110101000011110001110)2 สามารถแบ่งเป็นกลุ่มได้ดังนี้ 101 011 010 100 001 111 000 110  5 3 2 4 1 7 0 6

  19. เมื่อแบ่งกลุ่มเลขฐานสองแล้ว จะแทนเลขฐานสองของแต่ละกลุ่มด้วยรหัสOctal คือ เลข 0 ถึง 7 ทำให้อ่านง่าย ดังนั้น (1010110101000011110001110)2 จึงเข้ารหัส Octal ได้เป็น (53241706)8 และรหัส Octal ก็สามารถเปลี่ยน กลับมาเป็นเลขฐานสองได้ เช่น (1763)8 = (001 111 110 011)2 = (001111110011)2

  20. รหัส Hexadecimal เป็นรหัสที่นิยมใช้กันทั่วไป ในเครื่องคอมพิวเตอร์ การเข้า รหัส Hexadecimal ให้อยู่ในรูปของเลขฐานสอง ทำได้โดย การแบ่งเลขฐานสองเป็นกลุ่ม ๆ ละ 4 Bits ตามเลขฐานสิบหก เช่น (101000100111100111101100)2 สามารถแบ่งเป็นกลุ่มได้ดังนี้ 1010 0010 0111 1001 1110 1100  A 2 7 9 E C

  21. เมื่อแบ่งกลุ่มเลขฐานสองแล้ว จะแทนเลขฐานสองของ แต่ละกลุ่มด้วยรหัส Hexadecimal คือ เลข 0 ถึง F ดังนั้น (101000100111100111101100)2 จึงเข้ารหัส Hexadecimal ได้เป็น (A279EC)2 และรหัส Hexadecimal ก็สามารถเปลี่ยนกลับมา เป็นเลขฐานสองได้ เช่น (C7F8)16 = (1100 0111 1111 1000)2 = (1100011111111000)2

  22. ตัวอย่างที่ 2.4 • จงเข้ารหัสเลข Binary ต่อไปนี้ให้อยู่ในรูปของ รหัส Octal และรหัส Hexadecimal • (ก)10111101 (ข) 111100110101 • วิธีทำ • (10111101)2 = (010 111 101)2 • = (215)8 • (10111101)2 = (1011 1101)2 • = (BC)16 • (ข) (111100110101)2= (111 100 110 101)2 • = (7465)8 • (111100110101)2 = (1111 0011 0101)2 • = (F35)16

  23. ตัวอย่างที่ 2.5 จงถอดรหัส Octal ต่อไปนี้ให้เป็นเลขฐานสอง (ก)(305)8 (ข) (10746)8 วิธีทำ (ก)(305)8 = (011 000 101)2 = (11000101)2 (ข)(10746)8 = (001 000 111 100 110)2 = (1000111100110)2

  24. ตัวอย่างที่ 2.6 • จงถอดรหัส Hexadecimal ต่อไปนี้ให้เป็นเลขฐานสอง • (734)16 (ข) (5CB6)16 • วิธีทำ • (ก) (734)16 = (0111 0011 0100)2 • = (011100110100)2 • (ข) (5CB6)16 = (0101 1100 1011 0110)2 • = (101110010110110)2

  25. 2.4การใช้ Parity ในรหัส ในการส่งข้อมูลด้วยระบบ Digital เราสามารถตรวจสอบ ความถูกต้องของข้อมูลที่ส่งออกไปได้ วิธีที่นิยมใช้ในการตรวจสอบก็คือ ใช้ Parity Bit ซึ่ง Parity Bit คือ Bit (เลข 0 หรือ 1) ที่เติมเข้าไปในกลุ่ม รหัส (Code Word) แล้วทำให้กลุ่มรหัสนั้น ๆ มีจำนวนของเลข 1 เป็นจำนวนคู่ (Even) เรียกว่า Even Parity หรือ เป็นจำนวนคี่ (Odd) เรียกว่า Odd Parity

  26. ตารางที่ 2.4 แสดงการเติม Parity Bit ทั้งแบบ Odd และ Even ของ รหัส BCD-8421 ซึ่งนอกเหนือจาก รหัส BCD-8421 แล้ว เราก็ยังใช้ Parity Bit ในรูปของรหัสอื่น ๆ อีกด้วย และมีวิธีการเช่นเดียวกับที่กล่าวมาแล้ว

  27. ตัวอย่างที่ 2.7 จงเติม Even Parity Bit และ Odd Parity • จากรหัสต่อไปนี้ • 10011 (ข) 11001101 (ค) 1010111010 • วิธีทำ

  28. 2.5รหัสเกิน 3 (Excess-3 Code) รหัสเกิน 3 ดัดแปลงจากรหัส BCD-8421 เมื่อเปรียบเทียบรหัสเกิน 3 กับรหัส BCD-8421 ตามตารางที่ 2.5 จะเห็นว่ารหัสเกิน 3 จะมีค่ามากกว่ารหัส BCD-8421 อยู่ 3

  29. ตารางที่ 2.5 การเปรียบเทียบระหว่างรหัส BCD-8421 กับรหัส Excess-3

  30. การเข้ารหัสเลขฐานสิบเป็นรหัส Excex-3 หรือการถอดรหัสจากรหัส Excex-3 เป็นเลขฐานสิบ ก็มีวิธีการเช่นเดียวกับการเข้าเข้ารหัสเลขฐานสิบ เป็นรหัส BCD-8421 หรือการถอดรหัสจากรหัส BCD-8421 เป็นเลขฐานสิบ

  31. ตัวอย่างที่ 2.8 จงเข้ารหัสเลขฐานสิบต่อไปนี้ เป็นรหัสเกิน 3 • 24 (ข) 618 (ค) 3570 • วิธีทำ

  32. การแปลงรหัส BCD-8421 เป็นรหัสเกิน 3 ก็เพื่อผลทางคณิตศาสตร์ โดยผลบวกของรหัสเกิน 3 จะให้ผลลัพธ์เป็นรหัส BCD-8421 เช่น

  33. รหัส BCD-8421 เป็น Weighted Code แต่รหัส Excess-3 ไม่เป็น Weighted Code เพราะค่าน้ำหนักของแต่ละ Bit ไม่เท่ากับจำนวนน้ำหนัก ที่ใช้แทนค่าของมัน

  34. 2.6รหัส BCD แบบอื่น ๆ ตารางที่ 2.6 รหัส BCD ขนาด 4 Bits แบบต่าง ๆ

  35. นอกจากรหัส BCD-8421 แล้ว ยังมีรหัส BCD แบบอื่น ๆ อีกมาก ตามตารางที่ 2.6 แสดงถึงรหัส BCD ขนาด 4 Bit ที่นิยมใช้กัน รหัส BCD เหล่านี้ เป็น Weighted Code มีชื่อรหัสบอก ค่าน้ำหนักของ Bit ในแต่ละตำแหน่ง การเข้ารหัสหรือถอดรหัสก็สามารถทำได้ โดยวิธีการเช่นเดียวกับที่กล่าวมาแล้ว

  36. 2.7รหัสขนาด 5-Bits ถึงแม้ว่า การใช้รหัสขนาด 4 Bit ก็เพียงพอต่อการเข้ารหัสของเลขฐานสิบ คือ 0 ถึง 9 แต่การใช้จำนวน Bit มากขึ้นอีก ย่อมจะใช้ประโยชน์จากรหัสนั้นได้เป็นพิเศษอีกด้วย เช่น การตรวจหาข้อผิดพลาดนอกจากนี้รหัสบางแบบ ก็มีความสะดวกต่อการใช้งานในวงจรอิเล็กทรอนิกส์

  37. รหัส 2 Out of 5 เป็น Unweighted Code ประกอบด้วย Bit 1 เพียง 2 ตัวเท่านั้น ใน 1 รหัส จึงทำให้ตรวจสอบข้อผิดพลาดได้ง่าย

  38. รหัส 51111 เป็น Weighted Code ส่วนรหัส Shift Counter (หรือรหัส Johnson) เป็น Unweighted Code ซึ่งรหัสทั้งสองแบบนี้มีลักษณะคล้ายกัน ลักษณะการจัดรหัสแบบนี้ ทำให้สะดวกต่อการใช้งานในวงจร อิเล็กทรอนิกส์

  39. ตารางที่ 2.7 รหัสขนาด 5 Bits แบบต่างๆ

  40. 2.8 รหัสมากว่า 5 Bit รหัส Biquinaryเป็นรหัสขนาด 7 Bits และมีค่าน้ำหนักกำหนดไว้ในแต่ละตำแหน่งตามชื่อเรียก คือ 50 43210 Code การตรวจสอบข้อผิดพลาดกระทำได้ง่ายมาก เพราะมี Bit1 อยู่เพียง 2 ตัวเท่านั้นในแต่ละกลุ่มรหัส และ Bit 1 ตัวแรกจะอยู่ในกลุ่ม 50 ส่วน Bit 1 อีกตัวหนึ่งจะอยู่ในกลุ่ม 43210 การตรวจสอบข้อผิดพลาดจึงทำได้ถึงสองชั้น

  41. รหัส Ring Counter เป็นรหัสที่ง่ายต่อการเข้าและถอดรหัส ถึงแม้ว่ารหัสแบบนี้จะมีถึง 10 Bits แต่การตรวจสอบข้อผิดพลาด ก็ทำได้ง่าย จึงเป็นที่นิยมในการใช้งานทั่วไป

  42. ตารางที่ 2.8 รหัส Biquinary และรหัส Ring Counter

  43. 2.9 รหัส Gray รหัส Gray ใช้กันมากในระบบการตรวจจับ สัญญาณด้วยแสง หรือระบบทำรหัสด้วยแกนหมุน Mechanics เพื่อบอกตำแหน่งของเพลาหมุน รหัสแบบนี้เป็นแบบ Non Weighted ในระหว่าง Code Group ที่เรียงลำดับกันไป จะมีการเปลี่ยนแปลงของรหัสครั้งละ 1 Bit เท่านั้น ทำให้โอกาสความผิดพลาดในการรับรหัส จึงเป็นไปได้น้อยมาก

  44. 2.9.1 การเปลี่ยนเลขฐานสองให้เป็นรหัส Gray การเปลี่ยนเลขฐานสองให้เป็นรหัส Gray จะเริ่มต้นจาก Bit ที่มีนัยสำคัญมากที่สุด (MSB) ของเลขฐานสอง ซึ่ง Bit นี้ รหัส Gray จะมีค่าเหมือนกับเลขฐานสองขั้นต่อไปนำ MSB ของเลขฐานสองบวกกับ Bit ถัดไป (Bit ที่ 2 นับจาก MSB)

  45. โดยถือหลักเกณฑ์ว่า 0+0 = 0, 0+1 = 1, 1+0 = 1 และ 1 + 1 = 0 (ตัวทด = 1 ให้ตัดทิ้ง) ผลบวกที่ได้คือ Bit ที่ 2 ของรหัส Gray ต่อไป ให้นำ Bit ที่ 2 ของเลขฐานสองบวกกับ Bit ที่ 3 ของเลขฐานสอง ผลบวกที่ได้คือ Bit ที่ 3 ของรหัส Gray และบวกกันเช่นนี้ไปเรื่อย ๆ ผลบวกที่ได้แต่ละครั้งคือ รหัส Gray ที่ต้องการ

  46. ตารางที่ 2.9การเปรียบเทียบระหว่าง เลขฐานสองกับรหัส Gray

  47. ตัวอย่างที่ 2.9 • จงเปลี่ยนเลขฐานสองต่อไปนี้ให้เป็นรหัส Gray • 1011000111101 • 0110011100011 • วิธีทำ • Binary • Gray Code • Binary • Gray Code

  48. 2.9.2 การเปลี่ยนรหัส Gray ให้เป็นเลขฐานสอง การเปลี่ยนรหัส Gray ให้เป็นเลขฐานสอง มีหลักการคล้ายกับการเปลี่ยนเลขฐานสองให้เป็นรหัส Gray โดยเริ่มต้นจาก MSB เช่นเดียวกัน กล่าวคือ MSB ของเลขฐานสอง จะมีค่าเหมือนกับ MSB ของรหัส Gray ขั้นต่อไป ให้นำ MSB ของเลขฐานสองบวกกับ Bit ที่ 2 (นับจาก MSB) ของรหัส Gray (หลักเกณฑ์การบวกก็เช่นเดียวกับการเปลี่ยน เลขฐานสองให้เป็นรหัส Gray)

More Related