วันจันทร์ที่ 8 กรกฎาคม พ.ศ. 2556

บิตตรวจสอบ (parity bit)

บิตตรวจสอบ


ถึงแม้เลขฐานสองที่ใช้ในคอมพิวเตอร์มีอัตราความผิดพลาดต่ำ เพราะมีค่าความเป็นไปได้เพียง 0 หรือ 
1 เท่านั้น แต่ก็อาจเกิดข้อบกพร่องขึ้นได้ภายในหน่วยความจำ ดังนั้น บิตตรวจสอบ หรือพาริตี้บิต จึงเป็นบิตที่เพิ่มเติมเข้ามาต่อท้ายอีก 1 บิต ซึ่งถือเป็นบิตพิเศษที่ใช้สำหรับตรวจสอบความแม่นยำและความถูกต้องของข้อมูลที่จะถูกจัดเก็บลงในคอมพิวเตอร์
สำหรับบิตตรวจสอบ จะมีวิธีตรวจสอบอยู่ 2 วิธีด้วยกัน คือ


1. การตรวจสอบบิตภาวะคู่ (Even Parity)
  การตรวจสอบบิตภาวะคู่ (Even Parity) จะมีค่าเป็น 1 เมื่อจำนวนของเลข 1 ในข้อมูลเป็นจำนวนคี่ (ซึ่งจะทำให้จำนวนเลข 1 ทั้งหมดเป็นจำนวนคู่ เมื่อรวมกับบิตนี้)
การตรวจสอบบิตภาวะคี่ (Odd Parity)

  การตรวจสอบบิตภาวะคี่ (Odd Parity) จะมีค่าเป็น 1 เมื่อจำนวนของเลข 1 ในข้อมูลเป็นจำนวนคู่ (ซึ่งจะทำให้จำนวนเลข 1 ทั้งหมดเป็นจำนวนคี่ เมื่อรวมกับบิตนี้
ข้อเสีย
การใช้ Parity bit คือ เสียเวลา และไม่ได้ประโยชน์เท่าไรนัก เพราะไม่สามารถบอกได้ว่าผิดที่ตำแหน่งตรงไหน และแก้ไขข้อผิดพลาดไม่ได้ บอกได้แค่เพียงว่ามีความผิดพลาดเกิดขึ้นเท่านั้น และ ถ้าสมมติข้อมูลเกิดผิดพลาดทีเดียว 2 บิต เช่น 10001001 เปลี่ยนเป็น 10101011 เราก็ไม่สามารถเช็คข้อผิดพลาดโดยใช้วิธี Parity ได้

รหัสแทนข้อมูล รหัส ASCII และ รหัส Unicode

รหัสที่เป็นมาตรฐาน คือ รหัส ASCII             
          American Standard Code For Information Interchange (ASCII) อ่านว่า แอส-กี้ เป็นรหัสที่พัฒนาขึ้นโดยสถาบันมาตรฐานแห่งชาติสหรัฐอเมริกา (American National Standard Institute: ANSI อ่านว่า แอน-ซาย) เรียกว่า ASCII Code ซึ่งเป็นที่นิยมในกลุ่มผู้สร้างเครื่องคอมพิวเตอร์ทั่วไป รหัสนี้ได้มาจากรหัสขององค์กรมาตรฐานระหว่างประเทศ (International Standardization Organization: ISO) ขนาด 7 บิท ซึ่งสามารถสร้างรหัสที่แตกต่างกันได้ถึง 128 รหัส (ตั้งแต่ 000 0000 ถึง 111 1111) โดยกำหนดให้ 32 รหัสแรกเป็น 000 0000 ถึง 001 1111 ทำหน้าที่เป็นสั่งควบคุม เช่น รหัส 000 1010 แทนการเลื่อนบรรทัด (Line Feed)ในเครื่องพิมพ์ เป็นต้น และอีก 96รหัสถัดไป (32-95) ใช้แทนอักษรและสัญลักษณ์พิเศษอื่น รหัส ASCII ใช้วิธีการกำหนดการแทนรหัสเป็นเลขฐานสิบ ทำให้ง่ายต่อการจำและใช้งาน นอกจากนั้นยังสามารถเขียนมนรูปของเลขฐานสิบหกได้ด้วย ดังนั้น ASCII Code จึงเป็นรหัสที่เขียนได้ 
แบบ เช่นอักษร A สามารถแทนเป็นรหัสได้ดังนี้
สัญลักษณ์
เลขฐานสิบ
เลขฐานสอง
เลขฐานสิบหก
A
65
100 0001
4 1

รหัส ASCII สามารถใช้แทนข้อมูลอักขระและคำสั่งได้มากขึ้น และมีการขยายเป็นรหัสแบบ 8 บิท

ตารางรหัส ASCII แทนตัวอักษร


Unicode

        ยูนิโค๊ด คือ รหัสคอมพิวเตอร์ใช้แทนตัวอักขระ สามารถใช้แทน ตัวอักษร,ตัวเลข,สัญลักษณ์ต่างๆ ได้มากกว่ารหัสแบบเก่าอย่าง  ASCII ซึ่งเก็บตัวอักษรได้สูงสุดเพียง 256 ตัว(รูปแบบ) โดยUnicdoe รุ่นปัจจุบันสามารถเก็บตัวอักษรได้ถึง 34,168 ตัวจากภาษาทั้งหมดทั่วโลก 24 ภาษา โดยไม่สนใจว่าเป็นแพลตฟอร์มใด ไม่ขึ้นกับโปรแกรมใด หรือภาษาใด unicode ได้ถูกนำไปใช้โดยผู้นำในอุตสาหกรรม 
เช่น Apple, HP, IBM, Microsoft, Unix ฯลฯ และเป็นแนวทางอย่างเป็นทางการในการทำ ISO /IEC 10646 ดังนั้น Unicode จึงถือเป็นมาตรฐานในการกำหนดรหัส สำหรับทุกตัวอักษร ทุกอักขระ  unicode ทำให้ข้อมูลสามารถเคลื่อนย้ายไปมาในหลายๆ ระบบ ข้ามแพลตฟอร์มไปมา หรือข้ามโปรแกรมได้อย่างสะดวก โดยไร้ข้อจำกัด Unicode ต่างจาก ASCII คือ ASCII เก็บ byte เดียว แต่Unicode เก็บ 2 byte ซึ่งข้อมูล 2 byte เก็บข้อมูลได้มากมายมหาศาล สามารถเก็บข้อมูลได้มากมายหลายภาษาในโลก 
อย่างภาษาไทยก็อยู่ใน Unicode นี้ด้วยเหมือนกัน ดังนั้นรหัสภาษาไทยเอาไปเปิดในภาษาจีน ก็ยังเป็นภาษาไทยอยู่ ไม่ออกมาเป็นภาษาจีน เพราะว่ามี code ตายตัวอยู่ว่า code นี้จองไว้สำหรับภาษาไทย แล้ว code ตรงช่วงนั้นเป็นภาษาจีน ตรงโน่นเป็นภาษาญี่ปุ่น จะไม่ใช้ที่ซ้ำกัน เป็นต้น



SAYUMPHOOL CHAILANGKA
01010011 01000001 01011001 01010101 01001101 01010000 1011000 01001111 01001111 01001100 01000000 01000011 01011000 01000011 01011000 01000001 01001001 01001100 01000001 01001110 01000111 01001011 01000001

ใช้พื้นที่จัดเก็บจำนวน 184 bit 20 byte